You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

.cirrus.yml 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. # content of service-account-credentials.json, used to access to Google Cloud Platform
  2. gcp_credentials: ENCRYPTED[!e5f7207bd8d02d383733bef47e18296ac32e3b7d22eb480354e8dd8fdc0004be45a8a4e72c797bd66ee94eb3340fa363!]
  3. env:
  4. 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"
  5. # to be replaced by other credentials
  6. ARTIFACTORY_PRIVATE_USERNAME: repox-private-reader-sq-ef42e7
  7. ARTIFACTORY_PRIVATE_PASSWORD: ENCRYPTED[!78f301d53d89b4f7d7fc29b4ebce24b0aa989c7f742084fae80366b3fe2434a70a549a12e4856d4ca5ab95228f3f37be!]
  8. ARTIFACTORY_DEPLOY_USERNAME: repox-qa-deployer-sq-ef42e7
  9. ARTIFACTORY_DEPLOY_PASSWORD: ENCRYPTED[!d8838c939fe77f3b0a0510774c3b270832646e06cab8e477b35ff776933042105d211e7a0fb8ddcf826ce9f53258c519!]
  10. ARTIFACTORY_API_KEY: ENCRYPTED[!78f301d53d89b4f7d7fc29b4ebce24b0aa989c7f742084fae80366b3fe2434a70a549a12e4856d4ca5ab95228f3f37be!]
  11. ARTIFACTORY_PROMOTE_API_KEY: ENCRYPTED[!495d4e94f0847d36d1e54695c204500110da458c3be2c3f16c1e6c6fd8165bac6e8046e0d13c3869348990b34a149027!]
  12. # download licenses for testing commercial editions
  13. GITHUB_TOKEN: ENCRYPTED[!f458126aa9ed2ac526f220c5acb51dd9cc255726b34761a56fc78d4294c11089502a882888cef0ca7dd4085e72e611a5!]
  14. # notifications to burgr
  15. BURGR_URL: ENCRYPTED[24fba83587c1e9ed372b6cfdf12e4739ebe3b6e5b5082f1a2a742e840dd2e4b61fd5e281bf2632b22b3ad346c650c05c]
  16. BURGR_USERNAME: ENCRYPTED[cf7bfb936025fb763013bbfef0ab5723c0d9b53f135d79af36f9defa933f4b5fc72842bd83a97ce9b614503c1b77e6da]
  17. BURGR_PASSWORD: ENCRYPTED[bc554fc6a06c9f14cc9924cefad0a69e962a905b6d1609fc9357d458b45fc52ac74c960ad9c7382a0691433fa9dcd483]
  18. # analysis on next.sonarqube.com
  19. SONARQUBE_NEXT_TOKEN: ENCRYPTED[!0d599f9fb1613db33388821ca04af23f090729902b4421ad0a53cea8393d1e9039f2e47d65a246781b0e2c3718c172a1!]
  20. # to trigger docs deployment
  21. BUDDY_WORKS_TOKEN: ENCRYPTED[9ba648f3167b6f0c0befbba2f816bfffd53260fef06fb0fe8bba0a19ae4808c8b1567c5dcee2a2ee5299a5969058f495]
  22. ELASTIC_PWD: ENCRYPTED[78c127034b9f06bc1b5ad7a520de2da094f3eaf1dcb35f12b0f178fa90ce2fd157bd6f9feece9bf3a54b4e3805bc39fb]
  23. CIRRUS_LOG_TIMESTAMP: true
  24. # No need to clone the full history.
  25. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  26. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  27. CIRRUS_CLONE_DEPTH: 50
  28. BRANCH_MAIN: 'master'
  29. BRANCH_NIGHTLY: 'branch-nightly-build'
  30. BRANCH_PATTERN_MAINTENANCE: 'branch-.*'
  31. BRANCH_PATTERN_PUBLIC: 'public_.*'
  32. auto_cancellation: $CIRRUS_BRANCH != $BRANCH_MAIN && $CIRRUS_BRANCH !=~ $BRANCH_PATTERN_MAINTENANCE
  33. skip_public_branches_template: &SKIP_PUBLIC_BRANCHES_TEMPLATE
  34. skip: $CIRRUS_BRANCH =~ $BRANCH_PATTERN_PUBLIC
  35. build_dependant_task_template: &BUILD_DEPENDANT_TASK_TEMPLATE
  36. depends_on: build
  37. nightly_task_template: &NIGHTLY_TASK_TEMPLATE
  38. only_if: $CIRRUS_BRANCH == $BRANCH_NIGHTLY
  39. except_nightly_task_template: &EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  40. only_if: $CIRRUS_BRANCH != $BRANCH_NIGHTLY
  41. database_related_nightly_task_template: &DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  42. only_if: >-
  43. $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  44. changesInclude('server/sonar-db-dao/**/*Mapper.xml', 'server/sonar-db-migration/**/DbVersion*.java', 'server/sonar-db-dao/**/*Dao.java')
  45. saml_nightly_task_template: &SAML_NIGHTLY_TASK_TEMPLATE
  46. only_if: >-
  47. $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  48. 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')
  49. docker_build_container_template: &GKE_CONTAINER_TEMPLATE
  50. dockerfile: private/docker/Dockerfile-build
  51. builder_image_project: sonarqube-team
  52. builder_image_name: family/docker-builder
  53. cluster_name: cirrus-ci-cluster
  54. zone: us-central1-a
  55. namespace: default
  56. cpu: 1
  57. memory: 1Gb
  58. oracle_additional_container_template: &ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  59. name: oracle
  60. 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
  61. port: 1521
  62. cpu: 2
  63. memory: 5Gb
  64. env:
  65. ORACLE_PWD: sonarqube
  66. postgres_additional_container_template: &POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  67. name: postgres
  68. image: postgres:13.2
  69. port: 5432
  70. cpu: 1
  71. memory: 1Gb
  72. env:
  73. POSTGRES_USER: postgres
  74. POSTGRES_PASSWORD: postgres
  75. default_artifact_template: &DEFAULT_ARTIFACTS_TEMPLATE
  76. on_failure:
  77. jest_junit_cleanup_script: >
  78. find . -type f -wholename "**/build/test-results/test-jest/junit.xml" -exec
  79. xmlstarlet edit --inplace --delete '//testsuite[@errors=0 and @failures=0]' {} \;
  80. junit_artifacts:
  81. path: "**/build/test-results/**/*.xml"
  82. format: junit
  83. reports_artifacts:
  84. path: "**/build/reports/**/*"
  85. screenshots_artifacts:
  86. path: "**/build/screenshots/**/*"
  87. always:
  88. profile_artifacts:
  89. path: "**/build/reports/profile/**/*"
  90. yarn_cache_template: &YARN_CACHE_TEMPLATE
  91. yarn_cache:
  92. folder: "~/.yarn/berry/cache"
  93. fingerprint_script: |
  94. cat \
  95. server/sonar-web/yarn.lock \
  96. server/sonar-docs/yarn.lock \
  97. private/core-extension-enterprise-server/yarn.lock \
  98. private/core-extension-license/yarn.lock \
  99. private/core-extension-securityreport/yarn.lock
  100. gradle_cache_template: &GRADLE_CACHE_TEMPLATE
  101. gradle_cache:
  102. folder: "~/.gradle/caches"
  103. fingerprint_script: find -type f \( -name "*.gradle*" -or -name "gradle*.properties" \) -exec cat {} +
  104. eslint_report_cache_template: &ESLINT_REPORT_CACHE_TEMPLATE
  105. eslint_report_cache:
  106. folders:
  107. - server/sonar-web/eslint-report/
  108. - private/core-extension-securityreport/eslint-report/
  109. - private/core-extension-license/eslint-report/
  110. - private/core-extension-enterprise-server/eslint-report/
  111. - private/core-extension-developer-server/eslint-report/
  112. fingerprint_script: echo $CIRRUS_BUILD_ID
  113. jest_report_cache_template: &JEST_REPORT_CACHE_TEMPLATE
  114. jest_report_cache:
  115. folders:
  116. - server/sonar-web/coverage/
  117. - private/core-extension-securityreport/coverage/
  118. - private/core-extension-license/coverage/
  119. - private/core-extension-enterprise-server/coverage/
  120. - private/core-extension-developer-server/coverage/
  121. fingerprint_script: echo $CIRRUS_BUILD_ID
  122. junit_report_cache_template: &JUNIT_REPORT_CACHE_TEMPLATE
  123. junit_report_cache:
  124. folders:
  125. - "**/reports/jacoco"
  126. - "**/test-results/test"
  127. fingerprint_script: echo $CIRRUS_BUILD_ID
  128. build_task:
  129. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  130. <<: *GRADLE_CACHE_TEMPLATE
  131. <<: *YARN_CACHE_TEMPLATE
  132. gke_container:
  133. <<: *GKE_CONTAINER_TEMPLATE
  134. cpu: 7.5
  135. memory: 8Gb
  136. env:
  137. ORG_GRADLE_PROJECT_signingKey: ENCRYPTED[!cc216dfe592f79db8006f2a591f8f98b40aa2b078e92025623594976fd32f6864c1e6b6ba74b50647f608e2418e6c336!]
  138. ORG_GRADLE_PROJECT_signingPassword: ENCRYPTED[!314a8fc344f45e462dd5e8dccd741d7562283a825e78ebca27d4ae9db8e65ce618e7f6aece386b2782a5abe5171467bd!]
  139. ORG_GRADLE_PROJECT_signingKeyId: 0x7DCD4258
  140. elasticsearch_distribution_cache:
  141. folder: sonar-application/build/elasticsearch-**.tar.gz
  142. script:
  143. - ./private/cirrus/cirrus-build.sh
  144. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  145. yarn_lint_task:
  146. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  147. <<: *GRADLE_CACHE_TEMPLATE
  148. <<: *YARN_CACHE_TEMPLATE
  149. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  150. gke_container:
  151. <<: *GKE_CONTAINER_TEMPLATE
  152. cpu: 5
  153. memory: 6Gb
  154. script:
  155. - ./private/cirrus/cirrus-yarn-lint-report.sh
  156. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  157. yarn_check_task:
  158. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  159. <<: *GRADLE_CACHE_TEMPLATE
  160. <<: *YARN_CACHE_TEMPLATE
  161. gke_container:
  162. <<: *GKE_CONTAINER_TEMPLATE
  163. cpu: 5
  164. memory: 6Gb
  165. script: |
  166. ./private/cirrus/cirrus-env.sh YARN
  167. gradle yarn_check-ci --profile
  168. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  169. yarn_validate_task:
  170. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  171. <<: *GRADLE_CACHE_TEMPLATE
  172. <<: *YARN_CACHE_TEMPLATE
  173. <<: *JEST_REPORT_CACHE_TEMPLATE
  174. gke_container:
  175. <<: *GKE_CONTAINER_TEMPLATE
  176. cpu: 7.5
  177. memory: 20Gb
  178. script:
  179. - ./private/cirrus/cirrus-yarn-validate-ci.sh
  180. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  181. junit_task:
  182. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  183. <<: *GRADLE_CACHE_TEMPLATE
  184. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  185. gke_container:
  186. <<: *GKE_CONTAINER_TEMPLATE
  187. cpu: 7.5
  188. memory: 20Gb
  189. script:
  190. - ./private/cirrus/cirrus-junit.sh
  191. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  192. validate_task:
  193. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  194. <<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  195. <<: *GRADLE_CACHE_TEMPLATE
  196. <<: *YARN_CACHE_TEMPLATE
  197. <<: *JEST_REPORT_CACHE_TEMPLATE
  198. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  199. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  200. depends_on:
  201. - yarn_validate
  202. - yarn_lint
  203. - junit
  204. gke_container:
  205. <<: *GKE_CONTAINER_TEMPLATE
  206. cpu: 7.5
  207. memory: 28Gb
  208. env:
  209. # For the analysis, we need the full history.
  210. CIRRUS_CLONE_DEPTH: 0
  211. script:
  212. - ./private/cirrus/cirrus-validate.sh
  213. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  214. qa_task:
  215. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  216. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  217. <<: *GRADLE_CACHE_TEMPLATE
  218. gke_container:
  219. <<: *GKE_CONTAINER_TEMPLATE
  220. cpu: 3
  221. memory: 7Gb
  222. additional_containers:
  223. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  224. env:
  225. GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_USERNAME: ENCRYPTED[ac65bdcd84c5e5ff164bfffdea5f77b886a8be7f8586a9a9a41f5a648d9fcb33cc2fd5cd7aa6fcda3aa7f0372ccb007b]
  226. GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_TOKEN: ENCRYPTED[ac3877b534eb925c2c7989074a283a6eac83f1e54858e9ff5b97764a78857028dc21added63100cc730b0bb2b8ec4727]
  227. matrix:
  228. - QA_CATEGORY: Cat1
  229. - QA_CATEGORY: Cat2
  230. - QA_CATEGORY: Cat3
  231. - QA_CATEGORY: Cat4
  232. - QA_CATEGORY: Cat5
  233. - QA_CATEGORY: Cat6
  234. - QA_CATEGORY: Cat7
  235. - QA_CATEGORY: Authentication
  236. - QA_CATEGORY: Enterprise
  237. - QA_CATEGORY: Dev
  238. - QA_CATEGORY: License
  239. - QA_CATEGORY: Branch
  240. - QA_CATEGORY: Upgrade
  241. script:
  242. - ./private/cirrus/cirrus-qa.sh postgres
  243. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  244. task: #bitbucket
  245. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  246. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  247. <<: *NIGHTLY_TASK_TEMPLATE
  248. <<: *GRADLE_CACHE_TEMPLATE
  249. gke_container:
  250. <<: *GKE_CONTAINER_TEMPLATE
  251. cpu: 3
  252. memory: 10Gb
  253. additional_containers:
  254. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  255. maven_cache:
  256. folder: ~/.m2
  257. env:
  258. QA_CATEGORY: BITBUCKET
  259. matrix:
  260. - name: qa_bb_5.15.0
  261. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh 5.15.0
  262. - name: qa_bb_latest
  263. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh LATEST
  264. 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
  265. script:
  266. - ./private/cirrus/cirrus-qa.sh postgres
  267. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  268. qa_bb_cloud_task:
  269. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  270. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  271. <<: *NIGHTLY_TASK_TEMPLATE
  272. <<: *GRADLE_CACHE_TEMPLATE
  273. gke_container:
  274. <<: *GKE_CONTAINER_TEMPLATE
  275. cpu: 2.4
  276. memory: 5Gb
  277. env:
  278. QA_CATEGORY: BITBUCKET_CLOUD
  279. BBC_CLIENT_ID: ENCRYPTED[f1c2c57d5f02885345b3db5776a3b28f5dbcc89723809f73ad05ada903ece9584f1dfe61b026c10eabd72c75d1258bac]
  280. BBC_CLIENT_SECRET: ENCRYPTED[39cc89ce4695c243fd688e687879bd473a60882fd30ba8613d6697e5d2b04e2017c68cae3a9a7ed9704f69c52bf229ee]
  281. BBC_READ_REPOS_APP_PASSWORD: ENCRYPTED[35e0b64a4abbff0a061d58d0ad892bbaf5a6912784ac18167df788ee5c8188e98b98dd1b76e31fba090092b8b36d5317]
  282. BBC_USERNAME: ENCRYPTED[75707b0448dabae3f028533a412df424da16bf9fe239474a6678f4f0af9ec9cd9571f6d37fa44dadfd99a76c5584b70c]
  283. script:
  284. - ./private/cirrus/cirrus-qa.sh h2
  285. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  286. qa_ha_task:
  287. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  288. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  289. <<: *NIGHTLY_TASK_TEMPLATE
  290. <<: *GRADLE_CACHE_TEMPLATE
  291. gke_container:
  292. <<: *GKE_CONTAINER_TEMPLATE
  293. cpu: 2.4
  294. memory: 10Gb
  295. additional_containers:
  296. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  297. env:
  298. QA_CATEGORY: HA
  299. script:
  300. - ./private/cirrus/cirrus-qa.sh postgres
  301. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  302. docker_gitlab_container_build_task:
  303. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  304. <<: *NIGHTLY_TASK_TEMPLATE
  305. gce_instance:
  306. image_project: sonarqube-team
  307. image_family: docker-builder
  308. zone: us-central1-a
  309. preemptible: true
  310. disk: 10
  311. cpu: 4
  312. memory: 8G
  313. env:
  314. matrix:
  315. - GITLAB_TAG: latest
  316. - GITLAB_TAG: 11.7.0-ce.0
  317. build_script:
  318. - docker pull "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}" || true
  319. - 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/
  320. - docker push "us.gcr.io/sonarqube-team/sq-gitlab:${GITLAB_TAG}"
  321. # 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.
  322. qa_gitlab_task:
  323. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  324. <<: *NIGHTLY_TASK_TEMPLATE
  325. <<: *GRADLE_CACHE_TEMPLATE
  326. depends_on:
  327. - build
  328. - docker_gitlab_container_build
  329. gke_container:
  330. <<: *GKE_CONTAINER_TEMPLATE
  331. cpu: 2.4
  332. memory: 5Gb
  333. use_in_memory_disk: true
  334. additional_containers:
  335. - name: gitlab
  336. ports:
  337. - 80
  338. - 443
  339. cpu: 2
  340. memory: 5Gb
  341. matrix:
  342. - image: us.gcr.io/sonarqube-team/sq-gitlab:latest
  343. - image: us.gcr.io/sonarqube-team/sq-gitlab:11.7.0-ce.0
  344. env:
  345. QA_CATEGORY: GITLAB
  346. script:
  347. - ./private/cirrus/cirrus-qa.sh h2
  348. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  349. qa_gitlab_cloud_task:
  350. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  351. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  352. <<: *NIGHTLY_TASK_TEMPLATE
  353. <<: *GRADLE_CACHE_TEMPLATE
  354. gke_container:
  355. <<: *GKE_CONTAINER_TEMPLATE
  356. cpu: 2.4
  357. memory: 5Gb
  358. use_in_memory_disk: true
  359. env:
  360. QA_CATEGORY: GITLAB_CLOUD
  361. GITLAB_API_TOKEN: ENCRYPTED[a64a349d6185822adb17480cf507583fea6ba13b53edd4be6fb0eae76cf573bf7e68d560b7e57e1cc304cc719845c223]
  362. GITLAB_READ_ONLY_TOKEN: ENCRYPTED[29eb9c8643123f871329f0a88b540af401eb7f3f6f70447e0c80a955002f7998867faf2007bbb1b11880473f69384af9]
  363. GITLAB_ADMIN_USERNAME: ENCRYPTED[9bce572f769cb5432a691418879d7ab9bd74727bb9c16abe31af1b1beffabdce1720b9d8c888c37a3ce589473b44d5be]
  364. GITLAB_ADMIN_PASSWORD: ENCRYPTED[78e94b179d425e87d8f8b9ccaa1d117d8ffaec71eaee8ca7a3e36d1a885b85a61695f55031ab786af04d2181e3eadeb2]
  365. script:
  366. - ./private/cirrus/cirrus-qa.sh h2
  367. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  368. # Azure QA is executed in a dedicated task in order to not slow down the pipeline.
  369. qa_azure_task:
  370. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  371. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  372. <<: *NIGHTLY_TASK_TEMPLATE
  373. <<: *GRADLE_CACHE_TEMPLATE
  374. gke_container:
  375. <<: *GKE_CONTAINER_TEMPLATE
  376. cpu: 2.4
  377. memory: 5Gb
  378. env:
  379. QA_CATEGORY: AZURE
  380. AZURE_USERNAME_LOGIN: ENCRYPTED[dcdf19769c1501408ebc22670c76d5e375cd739de2df5dfa3f215aa795296dfb257dbbcbe9bdfd33135feb04421fea1f]
  381. AZURE_CODE_READ_AND_WRITE_TOKEN: ENCRYPTED[eddc3448b40e72310f24f21241bdc1243860139d1a5aad593b016baedf03e4bba3f9e3d8d9f6329fe3b587966a8112d2]
  382. AZURE_FULL_ACCESS_TOKEN: ENCRYPTED[58779d6588e2e10d1b6f98fcc58a46957f8ef3a18e29d79abc6aa8d69ea55c23d8708e1f1af626464d309b1c7c087985]
  383. script:
  384. - ./private/cirrus/cirrus-qa.sh h2
  385. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  386. qa_github_task:
  387. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  388. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  389. <<: *NIGHTLY_TASK_TEMPLATE
  390. <<: *GRADLE_CACHE_TEMPLATE
  391. gke_container:
  392. <<: *GKE_CONTAINER_TEMPLATE
  393. cpu: 2.4
  394. memory: 5Gb
  395. env:
  396. QA_CATEGORY: GITHUB
  397. script:
  398. - ./private/cirrus/cirrus-qa.sh h2
  399. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  400. # SAML QA is executed in a dedicated task in order to not slow down the pipeline, as a Keycloak server docker image is required.
  401. qa_saml_task:
  402. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  403. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  404. <<: *SAML_NIGHTLY_TASK_TEMPLATE
  405. <<: *GRADLE_CACHE_TEMPLATE
  406. gke_container:
  407. <<: *GKE_CONTAINER_TEMPLATE
  408. cpu: 2.4
  409. memory: 10Gb
  410. additional_containers:
  411. - name: keycloak
  412. image: quay.io/keycloak/keycloak:17.0.1
  413. port: 8080
  414. cpu: 1
  415. memory: 1Gb
  416. command: "/opt/keycloak/bin/kc.sh start-dev --http-relative-path /auth"
  417. env:
  418. KEYCLOAK_ADMIN: admin
  419. KEYCLOAK_ADMIN_PASSWORD: admin
  420. env:
  421. QA_CATEGORY: SAML
  422. script:
  423. - ./private/cirrus/cirrus-qa.sh h2
  424. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  425. # 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.
  426. qa_ldap_task:
  427. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  428. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  429. <<: *NIGHTLY_TASK_TEMPLATE
  430. <<: *GRADLE_CACHE_TEMPLATE
  431. gke_container:
  432. <<: *GKE_CONTAINER_TEMPLATE
  433. cpu: 2.4
  434. memory: 10Gb
  435. env:
  436. QA_CATEGORY: LDAP
  437. script:
  438. - ./private/cirrus/cirrus-qa.sh h2
  439. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  440. promote_task:
  441. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  442. <<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  443. depends_on:
  444. - build
  445. - validate
  446. - qa
  447. - qa_saml
  448. - qa_ldap
  449. gke_container:
  450. <<: *GKE_CONTAINER_TEMPLATE
  451. stateful: true
  452. script:
  453. - ./private/cirrus/cirrus-promote.sh
  454. package_docker_task:
  455. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  456. depends_on: promote
  457. only_if: $CIRRUS_BRANCH == $BRANCH_MAIN
  458. gce_instance:
  459. image_project: sonarqube-team
  460. image_family: docker-builder
  461. zone: us-central1-a
  462. disk: 10
  463. cpu: 4
  464. memory: 8G
  465. clone_script: |
  466. 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
  467. git fetch origin $CIRRUS_CHANGE_IN_REPO --depth=1
  468. git reset --hard $CIRRUS_CHANGE_IN_REPO
  469. install_tooling_script:
  470. - ./private/cirrus/cirrus-tooling-for-package-docker.sh
  471. package_script:
  472. - ./private/cirrus/cirrus-package-docker.sh
  473. sql_mssql_task:
  474. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  475. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  476. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  477. <<: *GRADLE_CACHE_TEMPLATE
  478. gke_container:
  479. <<: *GKE_CONTAINER_TEMPLATE
  480. memory: 5Gb
  481. additional_containers:
  482. - name: mssql
  483. image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
  484. port: 1433
  485. cpu: 2
  486. memory: 5Gb
  487. env:
  488. MSSQL_PID: Developer # this is the default edition
  489. ACCEPT_EULA: Y
  490. SA_PASSWORD: sonarqube!1
  491. script:
  492. - ./private/cirrus/cirrus-db-unit-test.sh mssql
  493. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  494. sql_postgres_task:
  495. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  496. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  497. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  498. <<: *GRADLE_CACHE_TEMPLATE
  499. gke_container:
  500. <<: *GKE_CONTAINER_TEMPLATE
  501. memory: 5Gb
  502. additional_containers:
  503. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  504. script:
  505. - ./private/cirrus/cirrus-db-unit-test.sh postgres
  506. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  507. # this is the oldest compatible version of PostgreSQL
  508. sql_postgres96_task:
  509. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  510. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  511. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  512. <<: *GRADLE_CACHE_TEMPLATE
  513. gke_container:
  514. <<: *GKE_CONTAINER_TEMPLATE
  515. memory: 5Gb
  516. additional_containers:
  517. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  518. image: postgres:9.6
  519. script:
  520. - ./private/cirrus/cirrus-db-unit-test.sh postgres
  521. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  522. sql_oracle12_task:
  523. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  524. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  525. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  526. <<: *GRADLE_CACHE_TEMPLATE
  527. gke_container:
  528. <<: *GKE_CONTAINER_TEMPLATE
  529. memory: 5Gb
  530. additional_containers:
  531. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  532. script:
  533. - ./private/cirrus/cirrus-db-unit-test.sh oracle12
  534. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  535. upgd_mssql_task:
  536. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  537. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  538. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  539. <<: *GRADLE_CACHE_TEMPLATE
  540. gke_container:
  541. <<: *GKE_CONTAINER_TEMPLATE
  542. cpu: 1.5
  543. memory: 6Gb
  544. additional_containers:
  545. - name: mssql
  546. image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
  547. port: 1433
  548. cpu: 2
  549. memory: 5Gb
  550. env:
  551. MSSQL_PID: Developer # this is the default edition
  552. ACCEPT_EULA: Y
  553. SA_PASSWORD: sonarqube!1
  554. env:
  555. QA_CATEGORY: Upgrade
  556. script:
  557. - ./private/cirrus/cirrus-qa.sh mssql
  558. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  559. upgd_oracle12_task:
  560. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  561. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  562. <<: *DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE
  563. <<: *GRADLE_CACHE_TEMPLATE
  564. gke_container:
  565. <<: *GKE_CONTAINER_TEMPLATE
  566. cpu: 1.5
  567. memory: 6Gb
  568. additional_containers:
  569. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  570. env:
  571. QA_CATEGORY: Upgrade
  572. script:
  573. - ./private/cirrus/cirrus-qa.sh oracle12
  574. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  575. ws_scan_task:
  576. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  577. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  578. only_if: >-
  579. $CIRRUS_BRANCH == $BRANCH_MAIN ||
  580. ($CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE && $CIRRUS_BRANCH != $BRANCH_NIGHTLY)
  581. <<: *YARN_CACHE_TEMPLATE
  582. <<: *GRADLE_CACHE_TEMPLATE
  583. timeout_in: 30m
  584. gke_container:
  585. <<: *GKE_CONTAINER_TEMPLATE
  586. cpu: 2
  587. memory: 4Gb
  588. env:
  589. WS_APIKEY: ENCRYPTED[308f809a4051b3225bed52131b32fb52895bc5a12c23e901f35b1d1e9d80bcaf75a1023c0dd171994bdbe790b4055e66]
  590. WS_WSS_URL: "https://saas-eu.whitesourcesoftware.com/agent"
  591. WS_USERKEY: ENCRYPTED[747f9c9006cf9859fd5f02bad85a044c5c0f32d12190deb624d480ad6d86b2f114da136e068645281e9e83e2f0727ab2]
  592. SLACK_WEBHOOK_SQ: ENCRYPTED[dec8e4350cbea3b94d63098558bcb3ae9e79b71c2b6286fcfb9eb80c0953b6448b10f7271b07b5e75e52f362c25d7a8f]
  593. whitesource_script:
  594. - ./private/cirrus/cirrus-whitesource-scan.sh
  595. allow_failures: "true"
  596. on_failure:
  597. slack_notification_script:
  598. - ./private/cirrus/cirrus-whitesource-notifications.sh
  599. always:
  600. ws_artifacts:
  601. path: "whitesource/**/*"