Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

.cirrus.yml 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  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.daemon=false -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. auto_cancellation: $CIRRUS_BRANCH != 'master' && $CIRRUS_BRANCH !=~ 'branch.*'
  23. only_nightly_depending_on_build_template: &ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  24. depends_on: build
  25. # Comment the following line and commit with message "DO NOT MERGE" in order to run
  26. # this task on your branch
  27. only_if: $CIRRUS_BRANCH == "branch-nightly-build"
  28. only_default_depending_on_build_template: &ONLY_DEFAUT_DEPENDING_ON_BUILD_TEMPLATE
  29. depends_on: build
  30. only_if: >-
  31. $CIRRUS_BRANCH !=~ "dogfood/.*" &&
  32. $CIRRUS_BRANCH != "public_master" &&
  33. $CIRRUS_BRANCH != "branch-nightly-build"
  34. docker_build_container_template: &GKE_CONTAINER_TEMPLATE
  35. dockerfile: private/docker/Dockerfile-build
  36. builder_image_project: sonarqube-team
  37. builder_image_name: docker-builder-v20200915
  38. cluster_name: cirrus-ci-cluster
  39. zone: us-central1-a
  40. namespace: default
  41. cpu: 1
  42. memory: 1Gb
  43. oracle_additional_container_template: &ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  44. name: oracle
  45. 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
  46. port: 1521
  47. cpu: 2
  48. memory: 5Gb
  49. env:
  50. ORACLE_PWD: sonarqube
  51. postgres_additional_container_template: &POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  52. name: postgres
  53. image: postgres:13.2
  54. port: 5432
  55. cpu: 1
  56. memory: 1Gb
  57. env:
  58. POSTGRES_USER: postgres
  59. POSTGRES_PASSWORD: postgres
  60. reports_junit_on_failure_template: &REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  61. jest_junit_cleanup_script: >
  62. find . -type f -wholename "**/build/test-results/test-jest/junit.xml" -exec
  63. xmlstarlet edit --inplace --delete '//testsuite[@errors=0 and @failures=0]' {} \;
  64. reports_artifacts:
  65. path: "**/build/reports/**/*"
  66. junit_artifacts:
  67. path: "**/build/test-results/**/*.xml"
  68. format: junit
  69. screenshots_on_failure_template: &REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  70. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  71. screenshots_artifacts:
  72. path: "**/build/screenshots/**/*"
  73. node_modules_cache_template: &NODE_MODULES_CACHE_TEMPLATE
  74. node_modules_cache:
  75. folder: "**/node_modules"
  76. fingerprint_script: |
  77. cat \
  78. server/sonar-web/yarn.lock \
  79. server/sonar-docs/yarn.lock \
  80. private/core-extension-governance/yarn.lock \
  81. private/core-extension-license/yarn.lock \
  82. private/core-extension-securityreport/yarn.lock
  83. build_task:
  84. <<: *NODE_MODULES_CACHE_TEMPLATE
  85. only_if: >-
  86. $CIRRUS_BRANCH !=~ "dogfood/.*" &&
  87. $CIRRUS_BRANCH != "public_master"
  88. timeout_in: 90m
  89. gke_container:
  90. <<: *GKE_CONTAINER_TEMPLATE
  91. cpu: 4
  92. memory: 7Gb
  93. env:
  94. # No need to clone the full history.
  95. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  96. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  97. CIRRUS_CLONE_DEPTH: 50
  98. ORG_GRADLE_PROJECT_signingKey: ENCRYPTED[!cc216dfe592f79db8006f2a591f8f98b40aa2b078e92025623594976fd32f6864c1e6b6ba74b50647f608e2418e6c336!]
  99. ORG_GRADLE_PROJECT_signingPassword: ENCRYPTED[!314a8fc344f45e462dd5e8dccd741d7562283a825e78ebca27d4ae9db8e65ce618e7f6aece386b2782a5abe5171467bd!]
  100. ORG_GRADLE_PROJECT_signingKeyId: 0x7DCD4258
  101. elasticsearch_distribution_cache:
  102. folder: sonar-application/build/elasticsearch-**.tar.gz
  103. script:
  104. - ./private/cirrus/cirrus-build.sh
  105. on_failure:
  106. reports_artifacts:
  107. path: "**/build/reports/**/*"
  108. validate_task:
  109. <<: *ONLY_DEFAUT_DEPENDING_ON_BUILD_TEMPLATE
  110. <<: *NODE_MODULES_CACHE_TEMPLATE
  111. timeout_in: 90m
  112. gke_container:
  113. <<: *GKE_CONTAINER_TEMPLATE
  114. cpu: 6.5
  115. memory: 16Gb
  116. additional_containers:
  117. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  118. script:
  119. - ./private/cirrus/cirrus-validate.sh postgres106
  120. on_failure:
  121. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  122. yarn_check-ci_task:
  123. <<: *ONLY_DEFAUT_DEPENDING_ON_BUILD_TEMPLATE
  124. <<: *NODE_MODULES_CACHE_TEMPLATE
  125. timeout_in: 90m
  126. gke_container:
  127. <<: *GKE_CONTAINER_TEMPLATE
  128. cpu: 4
  129. memory: 8Gb
  130. script: |
  131. ./private/cirrus/cirrus-env.sh YARN
  132. gradle yarn_check-ci
  133. on_failure:
  134. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  135. qa_task:
  136. <<: *ONLY_DEFAUT_DEPENDING_ON_BUILD_TEMPLATE
  137. gke_container:
  138. <<: *GKE_CONTAINER_TEMPLATE
  139. cpu: 3
  140. memory: 7Gb
  141. additional_containers:
  142. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  143. env:
  144. # No need to clone the full history.
  145. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  146. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  147. CIRRUS_CLONE_DEPTH: 50
  148. matrix:
  149. - QA_CATEGORY: Cat1
  150. - QA_CATEGORY: Cat2
  151. - QA_CATEGORY: Cat3
  152. - QA_CATEGORY: Cat4
  153. - QA_CATEGORY: Cat5
  154. - QA_CATEGORY: Cat6
  155. - QA_CATEGORY: Cat7
  156. - QA_CATEGORY: Authentication
  157. - QA_CATEGORY: Gov
  158. - QA_CATEGORY: Dev
  159. - QA_CATEGORY: License
  160. - QA_CATEGORY: Branch
  161. - QA_CATEGORY: Upgrade
  162. script:
  163. - ./private/cirrus/cirrus-qa.sh postgres106
  164. on_failure:
  165. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  166. qa_bitbucket_task:
  167. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  168. gke_container:
  169. <<: *GKE_CONTAINER_TEMPLATE
  170. cpu: 3
  171. memory: 7Gb
  172. additional_containers:
  173. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  174. maven_cache:
  175. folder: ~/.m2
  176. env:
  177. # No need to clone the full history.
  178. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  179. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  180. CIRRUS_CLONE_DEPTH: 50
  181. QA_CATEGORY: BITBUCKET
  182. matrix:
  183. - name: qa_bitbucket_5.15.0
  184. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh 5.15.0
  185. - name: qa_bitbucket_latest
  186. bitbucket_background_script: ./private/cirrus/cirrus-start-bitbucket.sh LATEST
  187. 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
  188. script:
  189. - ./private/cirrus/cirrus-qa.sh postgres106
  190. on_failure:
  191. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  192. qa_ha_task:
  193. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  194. gke_container:
  195. <<: *GKE_CONTAINER_TEMPLATE
  196. cpu: 2.4
  197. memory: 10Gb
  198. additional_containers:
  199. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  200. env:
  201. # No need to clone the full history.
  202. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  203. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  204. CIRRUS_CLONE_DEPTH: 50
  205. QA_CATEGORY: HA
  206. gradle_cache:
  207. folder: ~/.gradle/caches
  208. script:
  209. - ./private/cirrus/cirrus-qa.sh postgres106
  210. cleanup_before_cache_script:
  211. - ./private/cirrus/cleanup-gradle-cache.sh
  212. on_failure:
  213. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  214. # 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.
  215. qa_gitlab_task:
  216. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  217. gke_container:
  218. <<: *GKE_CONTAINER_TEMPLATE
  219. cpu: 2.4
  220. memory: 5Gb
  221. use_in_memory_disk: true
  222. additional_containers:
  223. - name: gitlab
  224. matrix:
  225. - image: gitlab/gitlab-ce:latest
  226. - image: gitlab/gitlab-ce:11.7.0-ce.0
  227. port: 8080:80
  228. cpu: 1
  229. memory: 5Gb
  230. env:
  231. # Creating a personnal access token from rails console for test purpuse (can't do through gitlab REST API)
  232. GITLAB_POST_RECONFIGURE_SCRIPT: "gitlab-rails runner \"
  233. token = User.find_by_username('root').personal_access_tokens.create(scopes: [:api], name: 'token');
  234. token.set_token('token-here-456');
  235. token.save!;
  236. token_read = User.find_by_username('root').personal_access_tokens.create(scopes: [:read_user], name: 'token_read');
  237. token_read.set_token('token-read-123');
  238. token_read.save!;
  239. user = User.find_by_username('root');
  240. user.password = 'adminadmin';
  241. user.password_confirmation = 'adminadmin';
  242. user.save!;
  243. \""
  244. env:
  245. # No need to clone the full history.
  246. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  247. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  248. CIRRUS_CLONE_DEPTH: 50
  249. QA_CATEGORY: GITLAB
  250. gradle_cache:
  251. folder: ~/.gradle/caches
  252. script:
  253. - ./private/cirrus/cirrus-qa.sh h2
  254. cleanup_before_cache_script:
  255. - ./private/cirrus/cleanup-gradle-cache.sh
  256. on_failure:
  257. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  258. # Azure QA is executed in a dedicated task in order to not slow down the pipeline.
  259. qa_azure_task:
  260. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  261. gke_container:
  262. <<: *GKE_CONTAINER_TEMPLATE
  263. cpu: 2.4
  264. memory: 5Gb
  265. env:
  266. # No need to clone the full history.
  267. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  268. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  269. CIRRUS_CLONE_DEPTH: 50
  270. QA_CATEGORY: AZURE
  271. AZURE_USERNAME_LOGIN: ENCRYPTED[dcdf19769c1501408ebc22670c76d5e375cd739de2df5dfa3f215aa795296dfb257dbbcbe9bdfd33135feb04421fea1f]
  272. AZURE_CODE_READ_AND_WRITE_TOKEN: ENCRYPTED[eddc3448b40e72310f24f21241bdc1243860139d1a5aad593b016baedf03e4bba3f9e3d8d9f6329fe3b587966a8112d2]
  273. AZURE_FULL_ACCESS_TOKEN: ENCRYPTED[58779d6588e2e10d1b6f98fcc58a46957f8ef3a18e29d79abc6aa8d69ea55c23d8708e1f1af626464d309b1c7c087985]
  274. gradle_cache:
  275. folder: ~/.gradle/caches
  276. script:
  277. - ./private/cirrus/cirrus-qa.sh h2
  278. cleanup_before_cache_script:
  279. - ./private/cirrus/cleanup-gradle-cache.sh
  280. on_failure:
  281. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  282. # SAML QA is executed in a dedicated task in order to not slow down the pipeline, as a Keycloak server docker image is required.
  283. qa_saml_task:
  284. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  285. gke_container:
  286. <<: *GKE_CONTAINER_TEMPLATE
  287. cpu: 2.4
  288. memory: 10Gb
  289. additional_containers:
  290. - name: keycloak
  291. image: jboss/keycloak:7.0.0
  292. port: 8080
  293. cpu: 1
  294. memory: 1Gb
  295. env:
  296. KEYCLOAK_USER: admin
  297. KEYCLOAK_PASSWORD: admin
  298. env:
  299. # No need to clone the full history.
  300. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  301. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  302. CIRRUS_CLONE_DEPTH: 50
  303. QA_CATEGORY: SAML
  304. gradle_cache:
  305. folder: ~/.gradle/caches
  306. script:
  307. - ./private/cirrus/cirrus-qa.sh h2
  308. cleanup_before_cache_script:
  309. - ./private/cirrus/cleanup-gradle-cache.sh
  310. on_failure:
  311. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  312. # 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.
  313. qa_ldap_task:
  314. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  315. gke_container:
  316. <<: *GKE_CONTAINER_TEMPLATE
  317. cpu: 2.4
  318. memory: 10Gb
  319. env:
  320. # No need to clone the full history.
  321. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  322. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  323. CIRRUS_CLONE_DEPTH: 50
  324. QA_CATEGORY: LDAP
  325. gradle_cache:
  326. folder: ~/.gradle/caches
  327. script:
  328. - ./private/cirrus/cirrus-qa.sh h2
  329. cleanup_before_cache_script:
  330. - ./private/cirrus/cleanup-gradle-cache.sh
  331. on_failure:
  332. <<: *REPORTS_JUNIT_SCREENSHOTS_ON_FAILURE_TEMPLATE
  333. promote_task:
  334. <<: *ONLY_DEFAUT_DEPENDING_ON_BUILD_TEMPLATE
  335. depends_on:
  336. - build
  337. - validate
  338. - qa
  339. - qa_saml
  340. - qa_ldap
  341. gke_container:
  342. <<: *GKE_CONTAINER_TEMPLATE
  343. stateful: true
  344. env:
  345. # No need to clone the full history.
  346. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  347. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  348. CIRRUS_CLONE_DEPTH: 50
  349. script:
  350. - ./private/cirrus/cirrus-promote.sh
  351. deploy_docs_task:
  352. depends_on: promote
  353. only_if: $CIRRUS_BRANCH == 'dogfood-on-next'
  354. gke_container:
  355. <<: *GKE_CONTAINER_TEMPLATE
  356. env:
  357. # No need to clone the full history.
  358. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  359. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  360. CIRRUS_CLONE_DEPTH: 50
  361. script:
  362. - ./private/cirrus/cirrus-trigger-deploy-docs.sh
  363. sql_mssql2017_task:
  364. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  365. gke_container:
  366. <<: *GKE_CONTAINER_TEMPLATE
  367. memory: 5Gb
  368. additional_containers:
  369. - name: mssql
  370. image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
  371. port: 1433
  372. cpu: 2
  373. memory: 5Gb
  374. env:
  375. MSSQL_PID: Developer # this is the default edition
  376. ACCEPT_EULA: Y
  377. SA_PASSWORD: sonarqube!1
  378. script:
  379. - ./private/cirrus/cirrus-db-unit-test.sh mssql2017
  380. on_failure:
  381. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  382. # this is the oldest compatible version of PostgreSQL
  383. sql_postgres96_task:
  384. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  385. gke_container:
  386. <<: *GKE_CONTAINER_TEMPLATE
  387. memory: 5Gb
  388. additional_containers:
  389. - <<: *POSTGRES_ADDITIONAL_CONTAINER_TEMPLATE
  390. image: postgres:9.6
  391. script:
  392. - ./private/cirrus/cirrus-db-unit-test.sh postgres96
  393. on_failure:
  394. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  395. sql_oracle12_task:
  396. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  397. gke_container:
  398. <<: *GKE_CONTAINER_TEMPLATE
  399. memory: 5Gb
  400. additional_containers:
  401. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  402. script:
  403. - ./private/cirrus/cirrus-db-unit-test.sh oracle12
  404. on_failure:
  405. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  406. upgd_mssql2019_task:
  407. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  408. gke_container:
  409. <<: *GKE_CONTAINER_TEMPLATE
  410. cpu: 1.5
  411. memory: 6Gb
  412. additional_containers:
  413. - name: mssql
  414. image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
  415. port: 1433
  416. cpu: 2
  417. memory: 5Gb
  418. env:
  419. MSSQL_PID: Developer # this is the default edition
  420. ACCEPT_EULA: Y
  421. SA_PASSWORD: sonarqube!1
  422. env:
  423. # No need to clone the full history.
  424. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  425. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  426. CIRRUS_CLONE_DEPTH: 50
  427. matrix:
  428. QA_CATEGORY: Upgrade
  429. script:
  430. - ./private/cirrus/cirrus-qa.sh mssql2017
  431. on_failure:
  432. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  433. upgd_oracle12_task:
  434. <<: *ONLY_NIGHTLY_DEPENDING_ON_BUILD_TEMPLATE
  435. gke_container:
  436. <<: *GKE_CONTAINER_TEMPLATE
  437. cpu: 1.5
  438. memory: 6Gb
  439. additional_containers:
  440. - <<: *ORACLE_ADDITIONAL_CONTAINER_TEMPLATE
  441. env:
  442. # No need to clone the full history.
  443. # Depth of 1 is not enough because it would fail the build in case of consecutive pushes
  444. # (example of error: "Hard resetting to c968ecaf7a1942dacecd78480b3751ac74d53c33...Failed to force reset to c968ecaf7a1942dacecd78480b3751ac74d53c33: object not found!")
  445. CIRRUS_CLONE_DEPTH: 50
  446. matrix:
  447. QA_CATEGORY: Upgrade
  448. script:
  449. - ./private/cirrus/cirrus-qa.sh oracle12
  450. on_failure:
  451. <<: *REPORTS_JUNIT_ON_FAILURE_TEMPLATE
  452. ws_scan_task:
  453. depends_on: build
  454. only_if: >-
  455. $CIRRUS_BRANCH == 'master' ||
  456. $CIRRUS_BRANCH =~ 'branch.*'
  457. timeout_in: 30m
  458. gke_container:
  459. <<: *GKE_CONTAINER_TEMPLATE
  460. cpu: 2
  461. memory: 4Gb
  462. env:
  463. WS_APIKEY: ENCRYPTED[308f809a4051b3225bed52131b32fb52895bc5a12c23e901f35b1d1e9d80bcaf75a1023c0dd171994bdbe790b4055e66]
  464. WS_WSS_URL: "https://saas-eu.whitesourcesoftware.com/agent"
  465. WS_USERKEY: ENCRYPTED[747f9c9006cf9859fd5f02bad85a044c5c0f32d12190deb624d480ad6d86b2f114da136e068645281e9e83e2f0727ab2]
  466. SLACK_WEBHOOK_SQ: ENCRYPTED[dec8e4350cbea3b94d63098558bcb3ae9e79b71c2b6286fcfb9eb80c0953b6448b10f7271b07b5e75e52f362c25d7a8f]
  467. whitesource_script:
  468. - ./private/cirrus/cirrus-whitesource-scan.sh
  469. allow_failures: "true"
  470. on_failure:
  471. slack_notification_script:
  472. - ./private/cirrus/cirrus-whitesource-notifications.sh
  473. always:
  474. ws_artifacts:
  475. path: "whitesource/**/*"