1
0
Mirror von https://github.com/SonarSource/sonarqube.git synchronisiert 2024-08-10 14:10:47 +02:00
sonarqube/.cirrus.yml

645 Zeilen
22 KiB
YAML
Originalformat Blame Verlauf

Diese Datei enthält unsichtbare Unicode-Zeichen

Diese Datei enthält unsichtbare Unicode-Zeichen, die für Menschen nicht unterscheidbar sind, aber von einem Computer unterschiedlich verarbeitet werden können. Wenn du glaubst, dass das absichtlich so ist, kannst du diese Warnung ignorieren. Benutze den „Escape“-Button, um versteckte Zeichen anzuzeigen.

# content of service-account-credentials.json, used to access to Google Cloud Platform
gcp_credentials: ENCRYPTED[!e5f7207bd8d02d383733bef47e18296ac32e3b7d22eb480354e8dd8fdc0004be45a8a4e72c797bd66ee94eb3340fa363!]
env:
GRADLE_OPTS: -Dorg.gradle.jvmargs="-XX:+PrintFlagsFinal -XshowSettings:vm -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Duser.language=en -Duser.country=US"
# to be replaced by other credentials
ARTIFACTORY_PRIVATE_USERNAME: repox-private-reader-sq-ef42e7
ARTIFACTORY_PRIVATE_PASSWORD: ENCRYPTED[!78f301d53d89b4f7d7fc29b4ebce24b0aa989c7f742084fae80366b3fe2434a70a549a12e4856d4ca5ab95228f3f37be!]
ARTIFACTORY_DEPLOY_USERNAME: repox-qa-deployer-sq-ef42e7
ARTIFACTORY_DEPLOY_PASSWORD: ENCRYPTED[!d8838c939fe77f3b0a0510774c3b270832646e06cab8e477b35ff776933042105d211e7a0fb8ddcf826ce9f53258c519!]
ARTIFACTORY_API_KEY: ENCRYPTED[!78f301d53d89b4f7d7fc29b4ebce24b0aa989c7f742084fae80366b3fe2434a70a549a12e4856d4ca5ab95228f3f37be!]
ARTIFACTORY_PROMOTE_API_KEY: ENCRYPTED[!495d4e94f0847d36d1e54695c204500110da458c3be2c3f16c1e6c6fd8165bac6e8046e0d13c3869348990b34a149027!]
# download licenses for testing commercial editions
GITHUB_TOKEN: ENCRYPTED[!f458126aa9ed2ac526f220c5acb51dd9cc255726b34761a56fc78d4294c11089502a882888cef0ca7dd4085e72e611a5!]
# notifications to burgr
BURGR_URL: ENCRYPTED[24fba83587c1e9ed372b6cfdf12e4739ebe3b6e5b5082f1a2a742e840dd2e4b61fd5e281bf2632b22b3ad346c650c05c]
BURGR_USERNAME: ENCRYPTED[cf7bfb936025fb763013bbfef0ab5723c0d9b53f135d79af36f9defa933f4b5fc72842bd83a97ce9b614503c1b77e6da]
BURGR_PASSWORD: ENCRYPTED[bc554fc6a06c9f14cc9924cefad0a69e962a905b6d1609fc9357d458b45fc52ac74c960ad9c7382a0691433fa9dcd483]
# analysis on next.sonarqube.com
SONARQUBE_NEXT_TOKEN: ENCRYPTED[!0d599f9fb1613db33388821ca04af23f090729902b4421ad0a53cea8393d1e9039f2e47d65a246781b0e2c3718c172a1!]
# to trigger docs deployment
BUDDY_WORKS_TOKEN: ENCRYPTED[9ba648f3167b6f0c0befbba2f816bfffd53260fef06fb0fe8bba0a19ae4808c8b1567c5dcee2a2ee5299a5969058f495]
ELASTIC_PWD: ENCRYPTED[78c127034b9f06bc1b5ad7a520de2da094f3eaf1dcb35f12b0f178fa90ce2fd157bd6f9feece9bf3a54b4e3805bc39fb]
CIRRUS_LOG_TIMESTAMP: true
# No need to clone the full history.
# Depth of 1 is not enough because it would fail the build in case of consecutive pushes
# (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
CIRRUS_CLONE_DEPTH: 50
BRANCH_MAIN: 'master'
BRANCH_NIGHTLY: 'branch-nightly-build'
BRANCH_PATTERN_MAINTENANCE: 'branch-.*'
BRANCH_PATTERN_PUBLIC: 'public_.*'
auto_cancellation: $CIRRUS_BRANCH != $BRANCH_MAIN && $CIRRUS_BRANCH !=~ $BRANCH_PATTERN_MAINTENANCE
skip_public_branches_template: &SKIP_PUBLIC_BRANCHES_TEMPLATE
skip: $CIRRUS_BRANCH =~ $BRANCH_PATTERN_PUBLIC
build_dependant_task_template: &BUILD_DEPENDANT_TASK_TEMPLATE
depends_on: build
nightly_task_template: &NIGHTLY_TASK_TEMPLATE
only_if: $CIRRUS_BRANCH == $BRANCH_NIGHTLY
except_nightly_task_template: &EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
only_if: $CIRRUS_BRANCH != $BRANCH_NIGHTLY
database_related_nightly_task_template: &DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
only_if: >-
$CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
changesInclude('server/sonar-db-dao/**/*Mapper.xml', 'server/sonar-db-migration/**/DbVersion*.java', 'server/sonar-db-dao/**/*Dao.java')
saml_nightly_task_template: &SAML_NIGHTLY_TASK_TEMPLATE
only_if: >-
$CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
changesInclude('server/sonar-auth-saml/src/main/java/**/*.java', 'server/sonar-auth-saml/src/main/resources/**/*', 'server/sonar-db-dao/src/main/**/SAML*.java', 'private/it-core/src/test/java/org/sonarqube/tests/saml/*.java', 'server/sonar-webserver-webapi/src/main/java/org/sonar/server/saml/**/*.java')
docker_build_container_template: &GKE_CONTAINER_TEMPLATE
dockerfile: private/docker/Dockerfile-build
builder_image_project: sonarqube-team
builder_image_name: family/docker-builder
cluster_name: cirrus-ci-cluster
zone: us-central1-a
namespace: default
cpu: 1
memory: 1Gb
oracle_additional_container_template: &ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
name: oracle
image: us.gcr.io/sonarqube-team/oracle12:0.0.1 # see https://github.com/SonarSource/vms/blob/master/docker/README.md#oracle-12c to build it
port: 1521
cpu: 2
memory: 5Gb
env:
ORACLE_PWD: sonarqube
postgres_additional_container_template: &POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
name: postgres
image: postgres:13.2
port: 5432
cpu: 1
memory: 1Gb
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
default_artifact_template: &DEFAULT_ARTIFACTS_TEMPLATE
on_failure:
jest_junit_cleanup_script: >
find . -type f -wholename "**/build/test-results/test-jest/junit.xml" -exec
xmlstarlet edit --inplace --delete '//testsuite[@errors=0 and @failures=0]' {} \;
junit_artifacts:
path: "**/build/test-results/**/*.xml"
format: junit
reports_artifacts:
path: "**/build/reports/**/*"
screenshots_artifacts:
path: "**/build/screenshots/**/*"
always:
profile_artifacts:
path: "**/build/reports/profile/**/*"
yarn_cache_template: &YARN_CACHE_TEMPLATE
yarn_cache:
folder: "~/.yarn/berry/cache"
fingerprint_script: |
cat \
server/sonar-web/yarn.lock \
server/sonar-docs/yarn.lock \
private/core-extension-enterprise-server/yarn.lock \
private/core-extension-license/yarn.lock \
private/core-extension-securityreport/yarn.lock
gradle_cache_template: &GRADLE_CACHE_TEMPLATE
gradle_cache:
folder: "~/.gradle/caches"
fingerprint_script: find -type f \( -name "*.gradle*" -or -name "gradle*.properties" \) -exec cat {} +
eslint_report_cache_template: &ESLINT_REPORT_CACHE_TEMPLATE
eslint_report_cache:
folders:
- server/sonar-web/eslint-report/
- private/core-extension-securityreport/eslint-report/
- private/core-extension-license/eslint-report/
- private/core-extension-enterprise-server/eslint-report/
- private/core-extension-developer-server/eslint-report/
fingerprint_script: echo $CIRRUS_BUILD_ID
jest_report_cache_template: &JEST_REPORT_CACHE_TEMPLATE
jest_report_cache:
folders:
- server/sonar-web/coverage/
- private/core-extension-securityreport/coverage/
- private/core-extension-license/coverage/
- private/core-extension-enterprise-server/coverage/
- private/core-extension-developer-server/coverage/
fingerprint_script: echo $CIRRUS_BUILD_ID
junit_report_cache_template: &JUNIT_REPORT_CACHE_TEMPLATE
junit_report_cache:
folders:
- "**/reports/jacoco"
- "**/test-results/test"
fingerprint_script: echo $CIRRUS_BUILD_ID
build_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *YARN_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 7.5
memory: 8Gb
env:
ORG_GRADLE_PROJECT_signingKey: ENCRYPTED[!cc216dfe592f79db8006f2a591f8f98b40aa2b078e92025623594976fd32f6864c1e6b6ba74b50647f608e2418e6c336!]
ORG_GRADLE_PROJECT_signingPassword: ENCRYPTED[!314a8fc344f45e462dd5e8dccd741d7562283a825e78ebca27d4ae9db8e65ce618e7f6aece386b2782a5abe5171467bd!]
ORG_GRADLE_PROJECT_signingKeyId: 0x7DCD4258
elasticsearch_distribution_cache:
folder: sonar-application/build/elasticsearch-**.tar.gz
script:
- ./private/cirrus/cirrus-build.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
yarn_lint_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *YARN_CACHE_TEMPLATE
<<: *ESLINT_REPORT_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 5
memory: 6Gb
script:
- ./private/cirrus/cirrus-yarn-lint-report.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
yarn_check_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *YARN_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 5
memory: 6Gb
script: |
./private/cirrus/cirrus-env.sh YARN
gradle yarn_check-ci --profile
<<: *DEFAULT_ARTIFACTS_TEMPLATE
yarn_validate_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *YARN_CACHE_TEMPLATE
<<: *JEST_REPORT_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 7.5
memory: 20Gb
script:
- ./private/cirrus/cirrus-yarn-validate-ci.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
junit_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *JUNIT_REPORT_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 7.5
memory: 20Gb
script:
- ./private/cirrus/cirrus-junit.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
validate_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
<<: *YARN_CACHE_TEMPLATE
<<: *JEST_REPORT_CACHE_TEMPLATE
<<: *ESLINT_REPORT_CACHE_TEMPLATE
<<: *JUNIT_REPORT_CACHE_TEMPLATE
depends_on:
- yarn_validate
- yarn_lint
- junit
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 7.5
memory: 28Gb
env:
# For the analysis, we need the full history.
CIRRUS_CLONE_DEPTH: 0
script:
- ./private/cirrus/cirrus-validate.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
qa_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 3
memory: 7Gb
additional_containers:
- <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
env:
matrix:
- QA_CATEGORY: Cat1
- QA_CATEGORY: Cat2
- QA_CATEGORY: Cat3
- QA_CATEGORY: Cat4
- QA_CATEGORY: Cat5
- QA_CATEGORY: Cat6
- QA_CATEGORY: Cat7
- QA_CATEGORY: Authentication
- QA_CATEGORY: Enterprise
- QA_CATEGORY: Dev
- QA_CATEGORY: License
- QA_CATEGORY: Branch
- QA_CATEGORY: Upgrade
script:
- ./private/cirrus/cirrus-qa.sh postgres
<<: *DEFAULT_ARTIFACTS_TEMPLATE
task: #bitbucket
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 3
memory: 10Gb
additional_containers:
- <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
maven_cache:
folder: ~/.m2
env:
QA_CATEGORY: BITBUCKET
matrix:
- name: qa_bb_5.15.0
bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh 5.15.0
- name: qa_bb_latest
bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh LATEST
wait_for_bitbucket_to_boot_script: secs=3600; endTime=$(( $(date +%s) + secs )); while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:7990/bitbucket/status)" != "200" ]] || [ $(date +%s) -gt $endTime ]; do sleep 5; done
script:
- ./private/cirrus/cirrus-qa.sh postgres
<<: *DEFAULT_ARTIFACTS_TEMPLATE
qa_bb_cloud_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 5Gb
env:
QA_CATEGORY: BITBUCKET_CLOUD
BBC_CLIENT_ID: ENCRYPTED[f1c2c57d5f02885345b3db5776a3b28f5dbcc89723809f73ad05ada903ece9584f1dfe61b026c10eabd72c75d1258bac]
BBC_CLIENT_SECRET: ENCRYPTED[39cc89ce4695c243fd688e687879bd473a60882fd30ba8613d6697e5d2b04e2017c68cae3a9a7ed9704f69c52bf229ee]
BBC_READ_REPOS_APP_PASSWORD: ENCRYPTED[35e0b64a4abbff0a061d58d0ad892bbaf5a6912784ac18167df788ee5c8188e98b98dd1b76e31fba090092b8b36d5317]
BBC_USERNAME: ENCRYPTED[75707b0448dabae3f028533a412df424da16bf9fe239474a6678f4f0af9ec9cd9571f6d37fa44dadfd99a76c5584b70c]
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
qa_ha_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 10Gb
additional_containers:
- <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
env:
QA_CATEGORY: HA
script:
- ./private/cirrus/cirrus-qa.sh postgres
<<: *DEFAULT_ARTIFACTS_TEMPLATE
docker_gitlab_container_build_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
gce_instance:
image_project: sonarqube-team
image_family: docker-builder
zone: us-central1-a
preemptible: true
disk: 10
cpu: 4
memory: 8G
env:
matrix:
- GITLAB_TAG: latest
- GITLAB_TAG: 11.7.0-ce.0
build_script:
- docker pull "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}" || true
- docker build --build-arg "GITLAB_TAG=${GITLAB_TAG}" --cache-from "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}" -t "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}" private/docker/gitlab/
- docker push "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}"
# GitLab QA is executed in a dedicated task in order to not slow down the pipeline, as a GitLab on-prem server docker image is required.
qa_gitlab_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
depends_on:
- build
- docker_gitlab_container_build
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 5Gb
use_in_memory_disk: true
additional_containers:
- name: gitlab
ports:
- 80
- 443
cpu: 2
memory: 5Gb
matrix:
- image: us.gcr.io/sonarqube-team/sq-gitlab:latest
- image: us.gcr.io/sonarqube-team/sq-gitlab:11.7.0-ce.0
env:
QA_CATEGORY: GITLAB
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
qa_gitlab_cloud_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 5Gb
use_in_memory_disk: true
env:
QA_CATEGORY: GITLAB_CLOUD
GITLAB_API_TOKEN: ENCRYPTED[a64a349d6185822adb17480cf507583fea6ba13b53edd4be6fb0eae76cf573bf7e68d560b7e57e1cc304cc719845c223]
GITLAB_READ_ONLY_TOKEN: ENCRYPTED[29eb9c8643123f871329f0a88b540af401eb7f3f6f70447e0c80a955002f7998867faf2007bbb1b11880473f69384af9]
GITLAB_ADMIN_USERNAME: ENCRYPTED[9bce572f769cb5432a691418879d7ab9bd74727bb9c16abe31af1b1beffabdce1720b9d8c888c37a3ce589473b44d5be]
GITLAB_ADMIN_PASSWORD: ENCRYPTED[78e94b179d425e87d8f8b9ccaa1d117d8ffaec71eaee8ca7a3e36d1a885b85a61695f55031ab786af04d2181e3eadeb2]
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
# Azure QA is executed in a dedicated task in order to not slow down the pipeline.
qa_azure_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 5Gb
env:
QA_CATEGORY: AZURE
AZURE_USERNAME_LOGIN: ENCRYPTED[dcdf19769c1501408ebc22670c76d5e375cd739de2df5dfa3f215aa795296dfb257dbbcbe9bdfd33135feb04421fea1f]
AZURE_CODE_READ_AND_WRITE_TOKEN: ENCRYPTED[eddc3448b40e72310f24f21241bdc1243860139d1a5aad593b016baedf03e4bba3f9e3d8d9f6329fe3b587966a8112d2]
AZURE_FULL_ACCESS_TOKEN: ENCRYPTED[58779d6588e2e10d1b6f98fcc58a46957f8ef3a18e29d79abc6aa8d69ea55c23d8708e1f1af626464d309b1c7c087985]
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
qa_github_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 5Gb
env:
QA_CATEGORY: GITHUB
GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_USERNAME: ENCRYPTED[ac65bdcd84c5e5ff164bfffdea5f77b886a8be7f8586a9a9a41f5a648d9fcb33cc2fd5cd7aa6fcda3aa7f0372ccb007b]
GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_TOKEN: ENCRYPTED[ac3877b534eb925c2c7989074a283a6eac83f1e54858e9ff5b97764a78857028dc21added63100cc730b0bb2b8ec4727]
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
# SAML QA is executed in a dedicated task in order to not slow down the pipeline, as a Keycloak server docker image is required.
qa_saml_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *SAML_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 10Gb
additional_containers:
- name: keycloak
image: quay.io/keycloak/keycloak:17.0.1
port: 8080
cpu: 1
memory: 1Gb
command: "/opt/keycloak/bin/kc.sh start-dev --http-relative-path /auth"
env:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
env:
QA_CATEGORY: SAML
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
# LDAP QA is executed in a dedicated task in order to not slow down the pipeline, as a LDAP server and SonarQube server are re-started on each test.
qa_ldap_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2.4
memory: 10Gb
env:
QA_CATEGORY: LDAP
script:
- ./private/cirrus/cirrus-qa.sh h2
<<: *DEFAULT_ARTIFACTS_TEMPLATE
promote_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
depends_on:
- build
- validate
- qa
- qa_saml
- qa_ldap
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
stateful: true
script:
- ./private/cirrus/cirrus-promote.sh
package_docker_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
depends_on: promote
only_if: $CIRRUS_BRANCH == $BRANCH_MAIN
gce_instance:
image_project: sonarqube-team
image_family: docker-builder
zone: us-central1-a
disk: 10
cpu: 4
memory: 8G
clone_script: |
git clone --recursive --branch=$CIRRUS_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR --depth=1
git fetch origin $CIRRUS_CHANGE_IN_REPO --depth=1
git reset --hard $CIRRUS_CHANGE_IN_REPO
install_tooling_script:
- ./private/cirrus/cirrus-tooling-for-package-docker.sh
package_script:
- ./private/cirrus/cirrus-package-docker.sh
sql_mssql_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
memory: 5Gb
additional_containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
port: 1433
cpu: 2
memory: 5Gb
env:
MSSQL_PID: Developer # this is the default edition
ACCEPT_EULA: Y
SA_PASSWORD: sonarqube!1
script:
- ./private/cirrus/cirrus-db-unit-test.sh mssql
<<: *DEFAULT_ARTIFACTS_TEMPLATE
sql_postgres_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
memory: 5Gb
additional_containers:
- <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
script:
- ./private/cirrus/cirrus-db-unit-test.sh postgres
<<: *DEFAULT_ARTIFACTS_TEMPLATE
# this is the oldest compatible version of PostgreSQL
sql_postgres96_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
memory: 5Gb
additional_containers:
- <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
image: postgres:9.6
script:
- ./private/cirrus/cirrus-db-unit-test.sh postgres
<<: *DEFAULT_ARTIFACTS_TEMPLATE
sql_oracle12_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
memory: 5Gb
additional_containers:
- <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
script:
- ./private/cirrus/cirrus-db-unit-test.sh oracle12
<<: *DEFAULT_ARTIFACTS_TEMPLATE
upgd_mssql_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 1.5
memory: 6Gb
additional_containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
port: 1433
cpu: 2
memory: 5Gb
env:
MSSQL_PID: Developer # this is the default edition
ACCEPT_EULA: Y
SA_PASSWORD: sonarqube!1
env:
QA_CATEGORY: Upgrade
script:
- ./private/cirrus/cirrus-qa.sh mssql
<<: *DEFAULT_ARTIFACTS_TEMPLATE
upgd_oracle12_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
<<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 1.5
memory: 6Gb
additional_containers:
- <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
env:
QA_CATEGORY: Upgrade
script:
- ./private/cirrus/cirrus-qa.sh oracle12
<<: *DEFAULT_ARTIFACTS_TEMPLATE
ws_scan_task:
<<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
<<: *BUILD_DEPENDANT_TASK_TEMPLATE
only_if: >-
$CIRRUS_BRANCH == $BRANCH_MAIN ||
($CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE && $CIRRUS_BRANCH != $BRANCH_NIGHTLY)
<<: *YARN_CACHE_TEMPLATE
<<: *GRADLE_CACHE_TEMPLATE
timeout_in: 30m
gke_container:
<<: *GKE_CONTAINER_TEMPLATE
cpu: 2
memory: 4Gb
env:
WS_APIKEY: ENCRYPTED[308f809a4051b3225bed52131b32fb52895bc5a12c23e901f35b1d1e9d80bcaf75a1023c0dd171994bdbe790b4055e66]
WS_WSS_URL: "https://saas-eu.whitesourcesoftware.com/agent"
WS_USERKEY: ENCRYPTED[747f9c9006cf9859fd5f02bad85a044c5c0f32d12190deb624d480ad6d86b2f114da136e068645281e9e83e2f0727ab2]
SLACK_WEBHOOK_SQ: ENCRYPTED[dec8e4350cbea3b94d63098558bcb3ae9e79b71c2b6286fcfb9eb80c0953b6448b10f7271b07b5e75e52f362c25d7a8f]
whitesource_script:
- ./private/cirrus/cirrus-whitesource-scan.sh
allow_failures: "true"
on_failure:
slack_notification_script:
- ./private/cirrus/cirrus-whitesource-notifications.sh
always:
ws_artifacts:
path: "whitesource/**/*"