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 |
