aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortomverin2019-10-25 15:22:08 +0200
committerMassimo Paladin2019-10-25 15:22:08 +0200
commit455b2bec7642b0b5ba2d55ab246115b8e7f58fbb (patch)
tree5e41c0ff5f7857085634c0c1910dd19cca71100e
parent124ea56a39eb77ec1019fd3ffd8d0de79f960704 (diff)
downloadsonar-css-455b2bec7642b0b5ba2d55ab246115b8e7f58fbb.tar.bz2
Migrate from travis-cix to cirrus-ci
-rw-r--r--.cirrus.yml104
-rw-r--r--.cirrus/nodejs-lts.Dockerfile22
-rw-r--r--.travis.yml14
-rw-r--r--Jenkinsfile121
-rwxr-xr-xtravis.sh14
5 files changed, 126 insertions, 149 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644
index 0000000..9e677ef
--- /dev/null
+++ b/.cirrus.yml
@@ -0,0 +1,104 @@
+gcp_credentials: ENCRYPTED[!17c59813193e86cc337bce848b358412b90f50bc5fe1b8b39d363cdf14a41ebe76cfba0482e7f81d076994b9f6dbfb4c!]
+
+env:
+ CIRRUS_CLONE_DEPTH: 20
+ ARTIFACTORY_URL: ENCRYPTED[!2f8fa307d3289faa0aa6791f18b961627ae44f1ef46b136e1a1e63b0b4c86454dbb25520d49b339e2d50a1e1e5f95c88!]
+ ARTIFACTORY_PRIVATE_USERNAME: private-reader
+ ARTIFACTORY_PRIVATE_PASSWORD: ENCRYPTED[!921e2792ce1fc164aaea1146ab2478e7aefd8aaa87022ca745adccee4deaa470bb883ad3066738fceb37622f239296a7!]
+ ARTIFACTORY_DEPLOY_USERNAME: public-qa-deployer
+ ARTIFACTORY_DEPLOY_PASSWORD: ENCRYPTED[!ee8f6410a42b81c6c91c7b760e7be7796a7774b6e6e6acf3ff2ecf8c7c04c732865a0300673ea41155c0d19a989c0a5a!]
+ #Possible values for ARTIFACTORY_DEPLOY_REPO: sonarsource-private-qa, sonarsource-public-qa
+ ARTIFACTORY_DEPLOY_REPO: sonarsource-public-qa
+ ARTIFACTORY_API_KEY: ENCRYPTED[!f9526e763214dcd6f0cac5fbf712664bcf05395cc5c8f9f122ccf3a4c6d42c2bc809bff8a6d9904c935a47a05676682c!]
+ # burgr notification
+ BURGR_URL: ENCRYPTED[!c7e294da94762d7bac144abef6310c5db300c95979daed4454ca977776bfd5edeb557e1237e3aa8ed722336243af2d78!]
+ BURGR_USERNAME: ENCRYPTED[!b29ddc7610116de511e74bec9a93ad9b8a20ac217a0852e94a96d0066e6e822b95e7bc1fe152afb707f16b70605fddd3!]
+ BURGR_PASSWORD: ENCRYPTED[!83e130718e92b8c9de7c5226355f730e55fb46e45869149a9223e724bb99656878ef9684c5f8cfef434aa716e87f4cf2!]
+
+container_definition: &CONTAINER_DEFINITION
+ image: gcr.io/language-team/base:latest
+ cluster_name: cirrus-ci-lt-cluster
+ zone: us-central1-a
+ namespace: default
+
+win_vm_definition: &WINDOWS_VM_DEFINITION
+ gce_instance:
+ image_project: language-team
+ image_family: lt-base-windows
+ platform: windows
+ zone: us-central1-a
+ preemptible: false
+ disk: 60
+ type: n1-standard-4
+
+only_sonarsource_qa: &ONLY_SONARSOURCE_QA
+ only_if: $CIRRUS_USER_COLLABORATOR == 'true' && ($CIRRUS_PR != "" || $CIRRUS_BRANCH == "master" || $CIRRUS_BRANCH =~ "branch-.*" || $CIRRUS_BRANCH =~ "dogfood-on-.*")
+
+build_task:
+ gke_container:
+ <<: *CONTAINER_DEFINITION
+ cpu: 2
+ memory: 2G
+ env:
+ GITHUB_TOKEN: ENCRYPTED[!a4048528b1a03f194719e3295c10e46c1e197c706b3d7c71dfc93540535aa9012ae61c3b66d0d6c6901b6a5e0bd84c68!]
+ # analysis on next
+ SONAR_TOKEN: ENCRYPTED[!5ba7cbb5bf9d168de69bcd444d9e884c9cf664be1115640cc64e49df6d241c309a87fc527cab533c08f289b167187017!]
+ SONAR_HOST_URL: https://next.sonarqube.com/sonarqube
+ #allow deployment of pull request artifacts to repox
+ DEPLOY_PULL_REQUEST: true
+ maven_cache:
+ folder: $CIRRUS_WORKING_DIR/.m2/repository
+ build_script:
+ - source cirrus-env BUILD
+ - regular_mvn_build_deploy_analyze
+ cleanup_before_cache_script: cleanup_maven_repository
+
+build_win_task:
+ <<: *WINDOWS_VM_DEFINITION
+ build_script:
+ - mvn.cmd test
+
+plugin_qa_task:
+ depends_on:
+ - build
+ <<: *ONLY_SONARSOURCE_QA
+ gke_container:
+ dockerfile: .cirrus/nodejs-lts.Dockerfile
+ builder_image_project: language-team
+ builder_image_name: docker-builder-lt-v1
+ cluster_name: cirrus-ci-lt-cluster
+ zone: us-central1-a
+ namespace: default
+ cpu: 3
+ memory: 8G
+ env:
+ matrix:
+ - SQ_VERSION: LATEST_RELEASE[7.9]
+ - SQ_VERSION: DOGFOOD
+ maven_cache:
+ folder: $CIRRUS_WORKING_DIR/.m2/repository
+ qa_script:
+ - source cirrus-env QA
+ - source set_maven_build_version $BUILD_NUMBER
+ - cd its/plugin
+ - mvn verify -Dsonar.runtimeVersion=${SQ_VERSION} -Dmaven.test.redirectTestOutputToFile=false -B -e -V
+ cleanup_before_cache_script: cleanup_maven_repository
+
+promote_task:
+ depends_on:
+ - plugin_qa
+ <<: *ONLY_SONARSOURCE_QA
+ gke_container:
+ <<: *CONTAINER_DEFINITION
+ cpu: 0.5
+ memory: 500M
+ env:
+ #promotion cloud function
+ GCF_ACCESS_TOKEN: ENCRYPTED[!1fb91961a5c01e06e38834e55755231d649dc62eca354593105af9f9d643d701ae4539ab6a8021278b8d9348ae2ce8be!]
+ PROMOTE_URL: ENCRYPTED[!e22ed2e34a8f7a1aea5cff653585429bbd3d5151e7201022140218f9c5d620069ec2388f14f83971e3fd726215bc0f5e!]
+ #artifacts that will have downloadable links in burgr
+ ARTIFACTS: org.sonarsource.css:sonar-css-plugin:jar
+ maven_cache:
+ folder: $CIRRUS_WORKING_DIR/.m2/repository
+ script: cirrus_promote_maven
+ cleanup_before_cache_script: cleanup_maven_repository
diff --git a/.cirrus/nodejs-lts.Dockerfile b/.cirrus/nodejs-lts.Dockerfile
new file mode 100644
index 0000000..05adfe8
--- /dev/null
+++ b/.cirrus/nodejs-lts.Dockerfile
@@ -0,0 +1,22 @@
+FROM gcr.io/language-team/base:latest
+
+USER root
+
+ENV NODE_VERSION v10.16.3
+
+RUN wget -U "nodejs" -q -O nodejs.tar.xz https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.xz \
+ && tar -xJf "nodejs.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
+ && rm nodejs.tar.xz \
+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs
+
+ENV YARN_VERSION 1.19.1
+
+RUN curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
+ && mkdir -p /opt \
+ && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
+ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
+ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
+ && rm yarn-v$YARN_VERSION.tar.gz
+
+
+USER sonarsource
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 82f96a1..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-language: java
-sudo: false
-jdk: openjdk11
-script: "./travis.sh"
-cache:
- directories:
- - "$HOME/.m2/repository"
- - "$HOME/.sonar"
- - "$HOME/maven"
-notifications:
- email: false
- webhooks:
- - secure: 'rLDjr1N4uet5voRzrLBoeeKvTxPJtf77ZeWSUeMAd0IQKclOW06Gnr7Xnq9ksrydUJaOnd5/Fk1vqoyutC5I0zpGRW0l8FxknWDTJKRnXWNLfq557SfACOYQEZpMTiIEGHSOfbJ4iTrImRNde8Gw1ICvrNTBvH8Kbwg2jb3D0lRJ9krpCYgUYhNX7SPrqNG8SIiPPPMm7MRxjhAsW03WK98pV+PdEfhNDJQmGyZgFSI1nMkHxJiSVKz2mFxShwnAgaTNSxT8wJqskyV2ageuYuaZ8oKNjfOO3/4uj0UbJJYu3Ki6mW9mV1HvAAlhkLl4MblAlbeJ7+PnEWuuA9QAKvTk35fvRW7Byj9tCPguSLyrbA3smbqps2CKwAwu9cSiGJ42+I6YYCQZ4mN84rnB/QySJz2QUlYXXbmi9Zgz2K7bqLM9lgQRlIbI1I9V+5MRdbMaLxptMf62PMcatYZaQ30/Uubydm8Txilm/qWTQI2q1IPlIjEKIrt0tzssBJonh2bnxXR3PSoSAeFDuCe6sQbDmICrI1koM6cnSjSmINff9VEqmYM0S2wIj9O8M/G08M7em6UuiPObC79XQ6THZqxPhUoow8YOuiea8gFN+jpZcSHZQPJczV/bABJvIxfydAQG347Hn4yqYpeBN6YVppbMcoYyT+7ubSMaKIGNDbc='
- on_start: always
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index f73bebf..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,121 +0,0 @@
-@Library('SonarSource@2.1.2') _
-
-pipeline {
- agent none
- parameters {
- string(name: 'GIT_SHA1', description: 'Git SHA1 (provided by travisci hook job)')
- string(name: 'CI_BUILD_NAME', defaultValue: 'sonar-css', description: 'Build Name (provided by travisci hook job)')
- string(name: 'CI_BUILD_NUMBER', description: 'Build Number (provided by travisci hook job)')
- string(name: 'GITHUB_BRANCH', defaultValue: 'master', description: 'Git branch (provided by travisci hook job)')
- string(name: 'GITHUB_REPOSITORY_OWNER', defaultValue: 'SonarSource', description: 'Github repository owner(provided by travisci hook job)')
- }
- environment {
- SONARSOURCE_QA = 'true'
- MAVEN_TOOL = 'Maven 3.5.x'
- JDK_VERSION = 'Java 11'
- }
- stages {
- stage('Notify') {
- steps {
- sendAllNotificationQaStarted()
- }
- }
- stage('QA') {
- parallel {
- stage('ITs-lts') {
- agent {
- label 'linux'
- }
- steps {
- runITs "LATEST_RELEASE[7.9]"
- }
- }
-
- stage('ITs-latest') {
- agent {
- label 'linux'
- }
- steps {
- runITs "LATEST_RELEASE"
- }
- }
- stage('ITs-windows') {
- agent {
- label 'windows'
- }
- steps {
- runITs "LATEST_RELEASE"
- }
- }
- stage('ITs-dogfood') {
- agent {
- label 'linux'
- }
- steps {
- runITs "DOGFOOD"
- }
- }
-
- stage('CI-windows') {
- agent {
- label 'windows'
- }
- steps {
- withQAEnv {
- withMaven(maven: MAVEN_TOOL) {
- sh 'mvn.cmd clean test'
- }
- }
- }
- }
- }
- post {
- always {
- sendAllNotificationQaResult()
- }
- }
- }
- stage('Promote') {
- steps {
- repoxPromoteBuild()
- }
- post {
- always {
- sendAllNotificationPromote()
- }
- }
- }
- }
-}
-
-def runITs(String sqRuntimeVersion) {
- withQAEnv {
- nodejs(configId: 'npm-artifactory', nodeJSInstallationName: 'NodeJS latest') {
- withMaven(maven: MAVEN_TOOL) {
- mavenSetBuildVersion()
- dir('its') {
- def mvn = isUnix() ? 'mvn' : 'mvn.cmd'
- sh "${mvn} ${itBuildArguments sqRuntimeVersion}"
- }
- }
- }
- }
-}
-
-def withQAEnv(def body) {
- checkout scm
- def javaHome = tool name: env.JDK_VERSION, type: 'hudson.model.JDK'
- withEnv(["JAVA_HOME=${javaHome}"]) {
- withCredentials([string(credentialsId: 'ARTIFACTORY_PRIVATE_API_KEY', variable: 'ARTIFACTORY_API_KEY'),
- usernamePassword(credentialsId: 'ARTIFACTORY_PRIVATE_USER', passwordVariable: 'ARTIFACTORY_PRIVATE_PASSWORD', usernameVariable: 'ARTIFACTORY_PRIVATE_USERNAME')]) {
- wrap([$class: 'Xvfb']) {
- body.call()
- }
- }
- }
-}
-
-String itBuildArguments(String sqRuntimeVersion) {
- "-Pits -Dsonar.runtimeVersion=${sqRuntimeVersion} -Dorchestrator.artifactory.apiKey=${env.ARTIFACTORY_API_KEY} " +
- "-Dorchestrator.configUrl=https://repox.jfrog.io/repox/orchestrator.properties/orch-h2.properties -Dmaven.test.redirectTestOutputToFile=false clean verify -e -V"
-}
diff --git a/travis.sh b/travis.sh
deleted file mode 100755
index fb5230c..0000000
--- a/travis.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-set -euo pipefail
-
-function configureTravis {
- mkdir -p ~/.local
- curl -sSL https://github.com/SonarSource/travis-utils/tarball/v56 | tar zx --strip-components 1 -C ~/.local
- source ~/.local/bin/install
-}
-configureTravis
-
-export DEPLOY_PULL_REQUEST=true
-
-regular_mvn_build_deploy_analyze