diff options
| -rw-r--r-- | .cirrus.yml | 104 | ||||
| -rw-r--r-- | .cirrus/nodejs-lts.Dockerfile | 22 | ||||
| -rw-r--r-- | .travis.yml | 14 | ||||
| -rw-r--r-- | Jenkinsfile | 121 | ||||
| -rwxr-xr-x | travis.sh | 14 | 
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 | 
