Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

.cirrus.yml 27KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. env:
  2. 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"
  3. # to be replaced by other credentials
  4. ARTIFACTORY_PRIVATE_USERNAME: vault-${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-private-reader
  5. ARTIFACTORY_PRIVATE_PASSWORD: VAULT[development/artifactory/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-private-reader access_token]
  6. ARTIFACTORY_DEPLOY_USERNAME: vault-${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-qa-deployer
  7. ARTIFACTORY_DEPLOY_PASSWORD: VAULT[development/artifactory/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-qa-deployer access_token]
  8. ARTIFACTORY_ACCESS_TOKEN: VAULT[development/artifactory/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-private-reader access_token]
  9. ARTIFACTORY_PROMOTE_ACCESS_TOKEN: VAULT[development/artifactory/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-promoter access_token]
  10. # download licenses for testing commercial editions
  11. GITHUB_TOKEN: VAULT[development/github/token/licenses-ro token]
  12. # notifications to burgr
  13. BURGR_URL: VAULT[development/kv/data/burgr data.url]
  14. BURGR_USERNAME: VAULT[development/kv/data/burgr data.cirrus_username]
  15. BURGR_PASSWORD: VAULT[development/kv/data/burgr data.cirrus_password]
  16. # analysis on next.sonarqube.com
  17. SONARQUBE_NEXT_TOKEN: VAULT[development/kv/data/next data.token]
  18. # to trigger docs deployment
  19. ELASTIC_PWD: VAULT[development/team/sonarqube/kv/data/elasticsearch-cloud data.password]
  20. DATADOG_APIKEY: VAULT[development/team/sonarqube/kv/data/sq-datadog data.apikey]
  21. CIRRUS_LOG_TIMESTAMP: true
  22. BRANCH_MAIN: "master"
  23. BRANCH_NIGHTLY: "branch-nightly-build"
  24. BRANCH_PATTERN_MAINTENANCE: "branch-.*"
  25. BRANCH_PATTERN_PUBLIC: "public_.*"
  26. auto_cancellation: $CIRRUS_BRANCH != $BRANCH_MAIN && $CIRRUS_BRANCH !=~ $BRANCH_PATTERN_MAINTENANCE
  27. skip_public_branches_template: &SKIP_PUBLIC_BRANCHES_TEMPLATE
  28. skip: $CIRRUS_BRANCH =~ $BRANCH_PATTERN_PUBLIC
  29. cache_dependencies_dependant_task_template:
  30. &CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  31. depends_on: cache_dependencies
  32. build_dependant_task_template: &BUILD_DEPENDANT_TASK_TEMPLATE
  33. depends_on: build
  34. master_and_nightly_task_template: &MASTER_AND_NIGHTLY_TASK_TEMPLATE
  35. only_if: $CIRRUS_BRANCH == $BRANCH_NIGHTLY || $CIRRUS_BRANCH == $BRANCH_MAIN
  36. master_or_nightly_or_maintenance_task_template:
  37. &MASTER_OR_NIGHTLY_OR_MAINTENANCE_TASK_TEMPLATE
  38. only_if: $CIRRUS_BRANCH == $BRANCH_NIGHTLY || $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE
  39. except_nightly_task_template: &EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  40. only_if: $CIRRUS_BRANCH != $BRANCH_NIGHTLY
  41. database_related_task_template: &DATABASE_RELATED_TASK_TEMPLATE
  42. only_if: >-
  43. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  44. changesInclude('server/sonar-db-dao/**/*Mapper.xml', 'server/sonar-db-migration/**/DbVersion*.java', 'server/sonar-db-dao/**/*Dao.java', 'server/sonar-db-core/src/main/java/org/sonar/db/*.java')
  45. saml_task_template: &SAML_TASK_TEMPLATE
  46. only_if: >-
  47. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $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. ldap_task_template: &LDAP_TASK_TEMPLATE
  50. only_if: >-
  51. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  52. changesInclude('server/sonar-auth-ldap/src/main/java/**/*.java', 'server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/LdapCredentialsAuthentication.java', 'private/it-core/src/test/java/org/sonarqube/tests/ldap/*.java')
  53. github_task_template: &GITHUB_TASK_TEMPLATE
  54. only_if: >-
  55. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  56. changesInclude('private/core-extension-developer-server/src/main/java/com/sonarsource/branch/pr/github/**/*.java',
  57. 'private/core-extension-developer-server/src/main/java/com/sonarsource/github/**/*.java',
  58. 'private/it-branch/it-tests/src/test/java/com/sonarsource/branch/it/suite/pr/github/**/*.java',
  59. 'private/it-branch/it-tests/src/test/java/com/sonarsource/provisioning/github/*.java',
  60. 'private/core-extension-github-provisioning/**/*'
  61. )
  62. gitlab_task_template: &GITLAB_TASK_TEMPLATE
  63. only_if: >-
  64. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  65. changesInclude('private/core-extension-developer-server/src/main/java/com/sonarsource/branch/pr/gitlab/**/*.java',
  66. 'private/it-branch/it-tests/src/test/java/com/sonarsource/branch/it/suite/pr/gitlab/**/*.java',
  67. 'private/core-extension-gitlab-vulnerability-report/src/main/**/*.java')
  68. azure_task_template: &AZURE_TASK_TEMPLATE
  69. only_if: >-
  70. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  71. changesInclude('private/core-extension-developer-server/src/main/java/com/sonarsource/branch/pr/azuredevops/**/*.java', 'private/it-branch/it-tests/src/test/java/com/sonarsource/branch/it/suite/pr/azure/**/*.java')
  72. bitbucket_server_task_template: &BITBUCKET_SERVER_TASK_TEMPLATE
  73. only_if: >-
  74. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  75. changesInclude('private/core-extension-developer-server/src/main/java/com/sonarsource/branch/pr/bitbucketserver/**/*.java', 'private/it-branch/it-tests/src/test/java/com/sonarsource/branch/it/suite/pr/bitbucketserver/**/*.java')
  76. bitbucket_cloud_task_template: &BITBUCKET_CLOUD_TASK_TEMPLATE
  77. only_if: >-
  78. $CIRRUS_BRANCH == $BRANCH_MAIN || $CIRRUS_BRANCH =~ $BRANCH_PATTERN_MAINTENANCE || $CIRRUS_BRANCH == $BRANCH_NIGHTLY ||
  79. changesInclude('private/core-extension-developer-server/src/main/java/com/sonarsource/branch/pr/bitbucket/**/*.java', 'private/it-branch/it-tests/src/test/java/com/sonarsource/branch/it/suite/pr/bitbucketcloud/**/*.java')
  80. docker_build_container_template: &CONTAINER_TEMPLATE
  81. region: eu-central-1
  82. cluster_name: ${CIRRUS_CLUSTER_NAME}
  83. namespace: default
  84. builder_subnet_id: ${CIRRUS_AWS_SUBNET}
  85. builder_role: cirrus-builder
  86. builder_image: docker-builder-v*
  87. builder_instance_type: t2.small
  88. dockerfile: private/docker/Dockerfile-build
  89. docker_arguments:
  90. CIRRUS_AWS_ACCOUNT: ${CIRRUS_AWS_ACCOUNT}
  91. cpu: 1
  92. memory: 2Gb
  93. vm_instance_template: &VM_TEMPLATE
  94. experimental: true # see https://github.com/cirruslabs/cirrus-ci-docs/issues/1051
  95. image: docker-builder-v*
  96. type: t2.small
  97. region: eu-central-1
  98. subnet_id: ${CIRRUS_AWS_SUBNET}
  99. disk: 10
  100. cpu: 4
  101. memory: 8G
  102. t2xlarge_node_selector: &T2XLARGE_NODE_SELECTOR
  103. nodeSelectorTerms:
  104. - matchExpressions:
  105. - key: node.kubernetes.io/instance-type
  106. operator: In
  107. values: t2.xlarge
  108. oracle_additional_container_template: &ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  109. name: oracle
  110. image: gvenzl/oracle-xe:21-faststart
  111. port: 1521
  112. cpu: 2
  113. memory: 5Gb
  114. env:
  115. ORACLE_PASSWORD: sonarqube
  116. APP_USER: sonarqube
  117. APP_USER_PASSWORD: sonarqube
  118. postgres_additional_container_template: &POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  119. name: postgres
  120. image: public.ecr.aws/docker/library/postgres:15
  121. port: 5432
  122. cpu: 1
  123. memory: 1Gb
  124. env:
  125. POSTGRES_USER: postgres
  126. POSTGRES_PASSWORD: postgres
  127. default_artifact_template: &DEFAULT_ARTIFACTS_TEMPLATE
  128. on_failure:
  129. jest_junit_cleanup_script: >
  130. find . -type f -wholename "**/build/test-results/test-jest/junit.xml" -exec
  131. xmlstarlet edit --inplace --delete '//testsuite[@errors=0 and @failures=0]' {} \;
  132. junit_artifacts:
  133. path: "**/build/test-results/**/*.xml"
  134. type: "text/xml"
  135. format: junit
  136. reports_artifacts:
  137. path: "**/build/reports/**/*"
  138. screenshots_artifacts:
  139. path: "**/build/screenshots/**/*"
  140. always:
  141. profile_artifacts:
  142. path: "**/build/reports/profile/**/*"
  143. yarn_cache_template: &YARN_CACHE_TEMPLATE
  144. yarn_cache:
  145. folder: "~/.yarn/berry/cache"
  146. fingerprint_script: |
  147. cat \
  148. server/sonar-web/yarn.lock \
  149. private/core-extension-developer-server/yarn.lock \
  150. private/core-extension-enterprise-server/yarn.lock \
  151. private/core-extension-license/yarn.lock \
  152. private/core-extension-securityreport/yarn.lock
  153. gradle_cache_template: &GRADLE_CACHE_TEMPLATE
  154. gradle_cache:
  155. folder: "~/.gradle/caches"
  156. fingerprint_script: find -type f \( -name "*.gradle*" -or -name "gradle*.properties" \) | sort | xargs cat
  157. jar_cache_template: &JAR_CACHE_TEMPLATE
  158. jar_cache:
  159. folder: "**/build/libs/*.jar"
  160. fingerprint_key: jar-cache_$CIRRUS_BUILD_ID
  161. eslint_report_cache_template: &ESLINT_REPORT_CACHE_TEMPLATE
  162. eslint_report_cache:
  163. folders:
  164. - server/sonar-web/eslint-report/
  165. - server/sonar-web/design-system/eslint-report/
  166. - private/core-extension-securityreport/eslint-report/
  167. - private/core-extension-license/eslint-report/
  168. - private/core-extension-enterprise-server/eslint-report/
  169. - private/core-extension-developer-server/eslint-report/
  170. fingerprint_script: echo $CIRRUS_BUILD_ID
  171. jest_report_cache_template: &JEST_REPORT_CACHE_TEMPLATE
  172. jest_report_cache:
  173. folders:
  174. - server/sonar-web/coverage/
  175. - server/sonar-web/design-system/coverage/
  176. - private/core-extension-securityreport/coverage/
  177. - private/core-extension-license/coverage/
  178. - private/core-extension-enterprise-server/coverage/
  179. - private/core-extension-developer-server/coverage/
  180. fingerprint_script: echo $CIRRUS_BUILD_ID
  181. junit_report_cache_template: &JUNIT_REPORT_CACHE_TEMPLATE
  182. junit_report_cache:
  183. folders:
  184. - "**/reports/jacoco"
  185. - "**/test-results/test"
  186. fingerprint_script: echo $CIRRUS_BUILD_ID
  187. default_template: &DEFAULT_TEMPLATE
  188. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  189. clone_script: |
  190. git init
  191. git remote add origin https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git
  192. git fetch origin $CIRRUS_CHANGE_IN_REPO $FETCH_DEPTH
  193. git reset --hard $CIRRUS_CHANGE_IN_REPO
  194. env:
  195. FETCH_DEPTH: --depth=1
  196. cache_dependencies_task:
  197. <<: *DEFAULT_TEMPLATE
  198. <<: *GRADLE_CACHE_TEMPLATE
  199. eks_container:
  200. <<: *CONTAINER_TEMPLATE
  201. cpu: 2
  202. memory: 4Gb
  203. script:
  204. - ./private/cirrus/cirrus-cache-dependencies.sh
  205. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  206. build_task:
  207. <<: *DEFAULT_TEMPLATE
  208. <<: *GRADLE_CACHE_TEMPLATE
  209. <<: *YARN_CACHE_TEMPLATE
  210. <<: *JAR_CACHE_TEMPLATE
  211. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  212. eks_container:
  213. <<: *CONTAINER_TEMPLATE
  214. cpu: 7.5
  215. memory: 8Gb
  216. script:
  217. - ./private/cirrus/cirrus-build.sh
  218. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  219. publish_task:
  220. <<: *DEFAULT_TEMPLATE
  221. <<: *GRADLE_CACHE_TEMPLATE
  222. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  223. eks_container:
  224. <<: *CONTAINER_TEMPLATE
  225. cpu: 4
  226. memory: 4Gb
  227. env:
  228. ORG_GRADLE_PROJECT_signingKey: VAULT[development/kv/data/sign data.key]
  229. ORG_GRADLE_PROJECT_signingPassword: VAULT[development/kv/data/sign data.passphrase]
  230. ORG_GRADLE_PROJECT_signingKeyId: VAULT[development/kv/data/sign data.key_id]
  231. script:
  232. - ./private/cirrus/cirrus-publish.sh
  233. yarn_lint_task:
  234. <<: *DEFAULT_TEMPLATE
  235. <<: *GRADLE_CACHE_TEMPLATE
  236. <<: *YARN_CACHE_TEMPLATE
  237. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  238. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  239. eks_container:
  240. <<: *CONTAINER_TEMPLATE
  241. cpu: 3
  242. memory: 6Gb
  243. script:
  244. - ./private/cirrus/cirrus-yarn-lint-report.sh
  245. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  246. yarn_check_task:
  247. <<: *DEFAULT_TEMPLATE
  248. <<: *GRADLE_CACHE_TEMPLATE
  249. <<: *YARN_CACHE_TEMPLATE
  250. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  251. eks_container:
  252. <<: *CONTAINER_TEMPLATE
  253. cpu: 3
  254. memory: 5Gb
  255. script: |
  256. ./private/cirrus/cirrus-env.sh YARN
  257. gradle yarn_check-ci --profile
  258. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  259. yarn_validate_task:
  260. <<: *DEFAULT_TEMPLATE
  261. <<: *GRADLE_CACHE_TEMPLATE
  262. <<: *YARN_CACHE_TEMPLATE
  263. <<: *JEST_REPORT_CACHE_TEMPLATE
  264. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  265. eks_container:
  266. <<: *CONTAINER_TEMPLATE
  267. cpu: 7.5
  268. memory: 25Gb
  269. script:
  270. - ./private/cirrus/cirrus-yarn-validate-ci.sh
  271. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  272. junit_task:
  273. <<: *DEFAULT_TEMPLATE
  274. <<: *GRADLE_CACHE_TEMPLATE
  275. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  276. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  277. eks_container:
  278. <<: *CONTAINER_TEMPLATE
  279. cpu: 7.5
  280. memory: 10Gb
  281. script:
  282. - ./private/cirrus/cirrus-junit.sh
  283. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  284. sq_analysis_task:
  285. <<: *SKIP_PUBLIC_BRANCHES_TEMPLATE
  286. <<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  287. <<: *GRADLE_CACHE_TEMPLATE
  288. <<: *YARN_CACHE_TEMPLATE
  289. <<: *JEST_REPORT_CACHE_TEMPLATE
  290. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  291. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  292. depends_on:
  293. - yarn_validate
  294. - yarn_lint
  295. - junit
  296. eks_container:
  297. <<: *CONTAINER_TEMPLATE
  298. cpu: 7.5
  299. memory: 15Gb
  300. script:
  301. - ./private/cirrus/cirrus-sq-analysis.sh
  302. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  303. qa_task:
  304. <<: *DEFAULT_TEMPLATE
  305. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  306. <<: *CACHE_DEPENDENCIES_DEPENDANT_TASK_TEMPLATE
  307. <<: *GRADLE_CACHE_TEMPLATE
  308. <<: *JAR_CACHE_TEMPLATE
  309. eks_container:
  310. <<: *CONTAINER_TEMPLATE
  311. cpu: 3
  312. memory: 7Gb
  313. additional_containers:
  314. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  315. name: QA $QA_CATEGORY
  316. alias: qa
  317. env:
  318. matrix:
  319. # QA name should not exceed 13 characters to be properly reported on wallboard by burgr
  320. # QA name cannot contain "_"
  321. - QA_CATEGORY: Cat1
  322. - QA_CATEGORY: Cat2
  323. - QA_CATEGORY: Cat3
  324. - QA_CATEGORY: Cat4
  325. - QA_CATEGORY: Cat5
  326. - QA_CATEGORY: Cat6
  327. - QA_CATEGORY: Analysis
  328. - QA_CATEGORY: Authorization
  329. - QA_CATEGORY: Auth
  330. - QA_CATEGORY: Branch1
  331. - QA_CATEGORY: Branch2
  332. - QA_CATEGORY: CE1
  333. - QA_CATEGORY: CE2
  334. - QA_CATEGORY: ComputeEngine
  335. - QA_CATEGORY: DE1
  336. - QA_CATEGORY: DE2
  337. - QA_CATEGORY: EE1
  338. - QA_CATEGORY: EE2
  339. - QA_CATEGORY: Issues1
  340. - QA_CATEGORY: Issues2
  341. - QA_CATEGORY: License1
  342. - QA_CATEGORY: License2
  343. - QA_CATEGORY: Plugins
  344. - QA_CATEGORY: Project
  345. - QA_CATEGORY: QP
  346. - QA_CATEGORY: Upgrade
  347. script:
  348. - ./private/cirrus/cirrus-qa.sh postgres
  349. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  350. task: #bitbucket
  351. <<: *DEFAULT_TEMPLATE
  352. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  353. <<: *JAR_CACHE_TEMPLATE
  354. <<: *GRADLE_CACHE_TEMPLATE
  355. <<: *BITBUCKET_SERVER_TASK_TEMPLATE
  356. eks_container:
  357. <<: *CONTAINER_TEMPLATE
  358. cpu: 3
  359. memory: 10Gb
  360. additional_containers:
  361. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  362. maven_cache:
  363. folder: ~/.m2
  364. env:
  365. QA_CATEGORY: BITBUCKET
  366. matrix:
  367. - name: qa_bb_5.15.0
  368. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh 5.15.0
  369. - name: qa_bb_latest
  370. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh LATEST
  371. 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
  372. script:
  373. - ./private/cirrus/cirrus-qa.sh postgres
  374. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  375. qa_bb_cloud_task:
  376. <<: *DEFAULT_TEMPLATE
  377. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  378. <<: *JAR_CACHE_TEMPLATE
  379. <<: *GRADLE_CACHE_TEMPLATE
  380. <<: *BITBUCKET_CLOUD_TASK_TEMPLATE
  381. eks_container:
  382. <<: *CONTAINER_TEMPLATE
  383. cpu: 2.4
  384. memory: 7Gb
  385. env:
  386. QA_CATEGORY: BITBUCKET_CLOUD
  387. BBC_CLIENT_ID: VAULT[development/team/sonarqube/kv/data/bitbucket-cloud data.client_id]
  388. BBC_CLIENT_SECRET: VAULT[development/team/sonarqube/kv/data/bitbucket-cloud data.client_secret]
  389. BBC_USERNAME: VAULT[development/kv/data/bitbucket/sonarqube-its data.username]
  390. BBC_READ_REPOS_APP_PASSWORD: VAULT[development/kv/data/bitbucket/sonarqube-its data.password]
  391. script:
  392. - ./private/cirrus/cirrus-qa.sh h2
  393. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  394. qa_ha_task:
  395. <<: *DEFAULT_TEMPLATE
  396. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  397. <<: *MASTER_OR_NIGHTLY_OR_MAINTENANCE_TASK_TEMPLATE
  398. <<: *JAR_CACHE_TEMPLATE
  399. <<: *GRADLE_CACHE_TEMPLATE
  400. eks_container:
  401. <<: *CONTAINER_TEMPLATE
  402. cpu: 2.4
  403. memory: 10Gb
  404. additional_containers:
  405. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  406. <<: *T2XLARGE_NODE_SELECTOR
  407. env:
  408. QA_CATEGORY: HA
  409. script:
  410. - ./private/cirrus/cirrus-qa.sh postgres
  411. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  412. qa_performance_task:
  413. <<: *DEFAULT_TEMPLATE
  414. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  415. <<: *MASTER_AND_NIGHTLY_TASK_TEMPLATE
  416. <<: *JAR_CACHE_TEMPLATE
  417. <<: *GRADLE_CACHE_TEMPLATE
  418. eks_container:
  419. <<: *CONTAINER_TEMPLATE
  420. cpu: 2.4
  421. memory: 10Gb
  422. additional_containers:
  423. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  424. env:
  425. QA_CATEGORY: AnalysisPerformance
  426. script:
  427. - ./private/cirrus/cirrus-qa.sh postgres
  428. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  429. # 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.
  430. qa_gitlab_task:
  431. <<: *DEFAULT_TEMPLATE
  432. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  433. <<: *JAR_CACHE_TEMPLATE
  434. <<: *GRADLE_CACHE_TEMPLATE
  435. <<: *GITLAB_TASK_TEMPLATE
  436. depends_on:
  437. - build
  438. env:
  439. QA_CATEGORY: GITLAB
  440. matrix:
  441. - name: qa_gitlab_latest
  442. env:
  443. - GITLAB_VERSION: latest
  444. - name: qa_gitlab_oldest
  445. env:
  446. - GITLAB_VERSION: 15.6.2-ce.0
  447. eks_container:
  448. <<: *CONTAINER_TEMPLATE
  449. cpu: 2.4
  450. memory: 7Gb
  451. use_in_memory_disk: true
  452. additional_containers:
  453. - name: gitlab
  454. ports:
  455. - 80
  456. - 443
  457. cpu: 2
  458. memory: 8Gb
  459. image: ${CIRRUS_AWS_ACCOUNT}.dkr.ecr.eu-central-1.amazonaws.com/gitlab:${GITLAB_VERSION}
  460. env:
  461. - GITLAB_POST_RECONFIGURE_SCRIPT: |-
  462. { cat >/tmp/setup.rb <<-'EOF'
  463. token = User.find_by_username('root').personal_access_tokens.create(scopes: [:api], name: 'token');
  464. token.set_token('token-here-456');
  465. token.expires_at = Date.today+10.day
  466. token.save!;
  467. token_read = User.find_by_username('root').personal_access_tokens.create(scopes: [:read_user], name: 'token_read');
  468. token_read.set_token('token-read-123');
  469. token_read.expires_at = Date.today+10.day
  470. token_read.save!;
  471. user = User.find_by_username('root');
  472. user.password = 'eng-YTU1ydh6kyt7tjd';
  473. user.password_confirmation = 'eng-YTU1ydh6kyt7tjd';
  474. user.save!;
  475. EOF
  476. } && gitlab-rails runner /tmp/setup.rb && \
  477. echo 'from_file "/etc/gitlab/external_gitlab.rb"' >> /etc/gitlab/gitlab.rb && \
  478. gitlab-ctl reconfigure
  479. script:
  480. - ./private/cirrus/cirrus-qa.sh h2
  481. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  482. qa_gitlab_cloud_task:
  483. <<: *DEFAULT_TEMPLATE
  484. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  485. <<: *JAR_CACHE_TEMPLATE
  486. <<: *GRADLE_CACHE_TEMPLATE
  487. <<: *GITLAB_TASK_TEMPLATE
  488. eks_container:
  489. <<: *CONTAINER_TEMPLATE
  490. cpu: 2.4
  491. memory: 7Gb
  492. use_in_memory_disk: true
  493. env:
  494. QA_CATEGORY: GITLAB_CLOUD
  495. GITLAB_API_TOKEN: VAULT[development/team/sonarqube/kv/data/gitlab-cloud data.api_token]
  496. GITLAB_READ_ONLY_TOKEN: VAULT[development/team/sonarqube/kv/data/gitlab-cloud data.api_token_ro]
  497. GITLAB_ADMIN_USERNAME: VAULT[development/team/sonarqube/kv/data/gitlab-cloud data.username]
  498. GITLAB_ADMIN_PASSWORD: VAULT[development/team/sonarqube/kv/data/gitlab-cloud data.password]
  499. script:
  500. - ./private/cirrus/cirrus-qa.sh h2
  501. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  502. # Azure QA is executed in a dedicated task in order to not slow down the pipeline.
  503. qa_azure_task:
  504. <<: *DEFAULT_TEMPLATE
  505. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  506. <<: *JAR_CACHE_TEMPLATE
  507. <<: *GRADLE_CACHE_TEMPLATE
  508. <<: *AZURE_TASK_TEMPLATE
  509. eks_container:
  510. <<: *CONTAINER_TEMPLATE
  511. cpu: 2.4
  512. memory: 7Gb
  513. env:
  514. QA_CATEGORY: AZURE
  515. AZURE_USERNAME_LOGIN: VAULT[development/team/sonarqube/kv/data/azure-instance data.username]
  516. AZURE_CODE_READ_AND_WRITE_TOKEN: VAULT[development/team/sonarqube/kv/data/azure-instance data.token_code_read_write]
  517. AZURE_FULL_ACCESS_TOKEN: VAULT[development/team/sonarqube/kv/data/azure-instance data.token_full_access]
  518. script:
  519. - ./private/cirrus/cirrus-qa.sh h2
  520. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  521. qa_github_task:
  522. <<: *DEFAULT_TEMPLATE
  523. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  524. <<: *GITHUB_TASK_TEMPLATE
  525. <<: *JAR_CACHE_TEMPLATE
  526. <<: *GRADLE_CACHE_TEMPLATE
  527. eks_container:
  528. <<: *CONTAINER_TEMPLATE
  529. cpu: 4
  530. memory: 7Gb
  531. env:
  532. QA_CATEGORY: GITHUB
  533. GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_USERNAME: QA-task
  534. GITHUB_COM_CODE_SCANNING_ALERTS_TECHNICAL_USER_TOKEN: VAULT[development/github/token/SonarSource-sonar-enterprise-code-scanning token]
  535. script:
  536. - ./private/cirrus/cirrus-qa.sh h2
  537. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  538. qa_github_provisioning_task:
  539. <<: *DEFAULT_TEMPLATE
  540. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  541. <<: *GITHUB_TASK_TEMPLATE
  542. <<: *JAR_CACHE_TEMPLATE
  543. <<: *GRADLE_CACHE_TEMPLATE
  544. eks_container:
  545. <<: *CONTAINER_TEMPLATE
  546. cpu: 4
  547. memory: 7Gb
  548. env:
  549. QA_CATEGORY: GITHUB_PROVISIONING
  550. script:
  551. - ./private/cirrus/cirrus-qa.sh h2
  552. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  553. # SAML QA is executed in a dedicated task in order to not slow down the pipeline, as a Keycloak server docker image is required.
  554. qa_saml_task:
  555. <<: *DEFAULT_TEMPLATE
  556. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  557. <<: *SAML_TASK_TEMPLATE
  558. <<: *JAR_CACHE_TEMPLATE
  559. <<: *GRADLE_CACHE_TEMPLATE
  560. eks_container:
  561. <<: *CONTAINER_TEMPLATE
  562. cpu: 2.4
  563. memory: 10Gb
  564. additional_containers:
  565. - name: keycloak
  566. image: quay.io/keycloak/keycloak:22.0.1
  567. port: 8080
  568. cpu: 1
  569. memory: 1Gb
  570. command: "/opt/keycloak/bin/kc.sh start-dev --http-relative-path /auth"
  571. env:
  572. KEYCLOAK_ADMIN: admin
  573. KEYCLOAK_ADMIN_PASSWORD: admin
  574. env:
  575. QA_CATEGORY: SAML
  576. script:
  577. - ./private/cirrus/cirrus-qa.sh h2
  578. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  579. # 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.
  580. qa_ldap_task:
  581. <<: *DEFAULT_TEMPLATE
  582. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  583. <<: *LDAP_TASK_TEMPLATE
  584. <<: *JAR_CACHE_TEMPLATE
  585. <<: *GRADLE_CACHE_TEMPLATE
  586. eks_container:
  587. <<: *CONTAINER_TEMPLATE
  588. cpu: 2.4
  589. memory: 10Gb
  590. env:
  591. QA_CATEGORY: LDAP
  592. script:
  593. - ./private/cirrus/cirrus-qa.sh h2
  594. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  595. promote_task:
  596. <<: *DEFAULT_TEMPLATE
  597. <<: *EXCEPT_ON_NIGHTLY_TASK_TEMPLATE
  598. depends_on:
  599. - build
  600. - sq_analysis
  601. - qa
  602. - qa_saml
  603. - qa_ldap
  604. - publish
  605. eks_container:
  606. <<: *CONTAINER_TEMPLATE
  607. memory: 512M
  608. stateful: true
  609. script:
  610. - ./private/cirrus/cirrus-promote.sh
  611. package_docker_task:
  612. <<: *DEFAULT_TEMPLATE
  613. depends_on: promote
  614. only_if: $CIRRUS_BRANCH == $BRANCH_MAIN
  615. ec2_instance:
  616. <<: *VM_TEMPLATE
  617. clone_script: |
  618. 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
  619. git fetch origin $CIRRUS_CHANGE_IN_REPO --depth=1
  620. git reset --hard $CIRRUS_CHANGE_IN_REPO
  621. install_tooling_script:
  622. - ./private/cirrus/cirrus-tooling-for-package-docker.sh
  623. package_script:
  624. - ./private/cirrus/cirrus-package-docker.sh
  625. sql_mssql_task:
  626. <<: *DEFAULT_TEMPLATE
  627. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  628. <<: *DATABASE_RELATED_TASK_TEMPLATE
  629. <<: *GRADLE_CACHE_TEMPLATE
  630. eks_container:
  631. <<: *CONTAINER_TEMPLATE
  632. memory: 5Gb
  633. additional_containers:
  634. - name: mssql
  635. image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
  636. port: 1433
  637. cpu: 2
  638. memory: 5Gb
  639. env:
  640. MSSQL_PID: Developer # this is the default edition
  641. ACCEPT_EULA: Y
  642. SA_PASSWORD: sonarqube!1
  643. script:
  644. - ./private/cirrus/cirrus-db-unit-test.sh mssql
  645. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  646. sql_postgres_task:
  647. <<: *DEFAULT_TEMPLATE
  648. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  649. <<: *DATABASE_RELATED_TASK_TEMPLATE
  650. <<: *GRADLE_CACHE_TEMPLATE
  651. eks_container:
  652. <<: *CONTAINER_TEMPLATE
  653. memory: 5Gb
  654. additional_containers:
  655. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  656. script:
  657. - ./private/cirrus/cirrus-db-unit-test.sh postgres
  658. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  659. # this is the oldest compatible version of PostgreSQL
  660. sql_postgres11_task:
  661. <<: *DEFAULT_TEMPLATE
  662. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  663. <<: *DATABASE_RELATED_TASK_TEMPLATE
  664. <<: *GRADLE_CACHE_TEMPLATE
  665. eks_container:
  666. <<: *CONTAINER_TEMPLATE
  667. memory: 5Gb
  668. additional_containers:
  669. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  670. image: public.ecr.aws/docker/library/postgres:11
  671. script:
  672. - ./private/cirrus/cirrus-db-unit-test.sh postgres
  673. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  674. sql_oracle21_task:
  675. <<: *DEFAULT_TEMPLATE
  676. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  677. <<: *DATABASE_RELATED_TASK_TEMPLATE
  678. <<: *GRADLE_CACHE_TEMPLATE
  679. eks_container:
  680. <<: *CONTAINER_TEMPLATE
  681. memory: 5Gb
  682. additional_containers:
  683. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  684. script:
  685. - ./private/cirrus/cirrus-db-unit-test.sh oracle21
  686. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  687. upgd_mssql_task:
  688. <<: *DEFAULT_TEMPLATE
  689. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  690. <<: *DATABASE_RELATED_TASK_TEMPLATE
  691. <<: *JAR_CACHE_TEMPLATE
  692. <<: *GRADLE_CACHE_TEMPLATE
  693. eks_container:
  694. <<: *CONTAINER_TEMPLATE
  695. cpu: 1.5
  696. memory: 6Gb
  697. additional_containers:
  698. - name: mssql
  699. image: mcr.microsoft.com/mssql/server:2022-latest
  700. port: 1433
  701. cpu: 2
  702. memory: 5Gb
  703. env:
  704. MSSQL_PID: Developer # this is the default edition
  705. ACCEPT_EULA: Y
  706. SA_PASSWORD: sonarqube!1
  707. env:
  708. QA_CATEGORY: Upgrade
  709. script:
  710. - ./private/cirrus/cirrus-qa.sh mssql
  711. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  712. upgd_oracle21_task:
  713. <<: *DEFAULT_TEMPLATE
  714. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  715. <<: *DATABASE_RELATED_TASK_TEMPLATE
  716. <<: *JAR_CACHE_TEMPLATE
  717. <<: *GRADLE_CACHE_TEMPLATE
  718. eks_container:
  719. <<: *CONTAINER_TEMPLATE
  720. cpu: 1.5
  721. memory: 6Gb
  722. additional_containers:
  723. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  724. env:
  725. QA_CATEGORY: Upgrade
  726. script:
  727. - ./private/cirrus/cirrus-qa.sh oracle21
  728. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  729. mend_scan_task:
  730. <<: *DEFAULT_TEMPLATE
  731. <<: *BUILD_DEPENDANT_TASK_TEMPLATE
  732. <<: *MASTER_OR_NIGHTLY_OR_MAINTENANCE_TASK_TEMPLATE
  733. <<: *YARN_CACHE_TEMPLATE
  734. <<: *GRADLE_CACHE_TEMPLATE
  735. timeout_in: 30m
  736. eks_container:
  737. <<: *CONTAINER_TEMPLATE
  738. cpu: 2
  739. memory: 4Gb
  740. env:
  741. WS_APIKEY: VAULT[development/kv/data/mend data.apikey]
  742. WS_WSS_URL: VAULT[development/kv/data/mend data.url]
  743. WS_USERKEY: VAULT[development/kv/data/mend data.userKey]
  744. SLACK_WEBHOOK_SQ: VAULT[development/kv/data/slack data.webhook]
  745. mend_script:
  746. - ./private/cirrus/cirrus-mend-scan.sh
  747. allow_failures: "true"
  748. on_failure:
  749. slack_notification_script:
  750. - ./private/cirrus/cirrus-mend-notifications.sh
  751. always:
  752. ws_artifacts:
  753. path: "whitesource/**/*"