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 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. only_if: $CIRRUS_TAG == "" && ($CIRRUS_PR != "" || $CIRRUS_BRANCH == $CIRRUS_DEFAULT_BRANCH || $CIRRUS_BRANCH =~ "branch-.*" || $CIRRUS_BUILD_SOURCE == 'api' )
  2. skip: $CIRRUS_BRANCH == "public_master" || $CIRRUS_BRANCH =~ "dogfood/.*"
  3. env:
  4. CIRRUS_SHELL: bash
  5. CIRRUS_CLONE_DEPTH: 0
  6. GRADLE_USER_HOME: ${CIRRUS_WORKING_DIR}/.gradle
  7. FETCH_DEPTH: --depth=1
  8. default_artifact_template: &DEFAULT_ARTIFACTS_TEMPLATE
  9. on_failure:
  10. jest_junit_cleanup_script: >
  11. find . -type f -wholename "**/build/test-results/test-jest/junit.xml" -exec
  12. xmlstarlet edit --inplace --delete '//testsuite[@errors=0 and @failures=0]' {} \;
  13. junit_artifacts:
  14. path: '**/build/test-results/**/*.xml'
  15. type: 'text/xml'
  16. format: junit
  17. reports_artifacts:
  18. path: '**/build/reports/**/*'
  19. screenshots_artifacts:
  20. path: '**/build/screenshots/**/*'
  21. log_artifacts:
  22. path: '**/build/**/*.log'
  23. default_template: &DEFAULT_TEMPLATE
  24. clone_script: |
  25. git init
  26. git remote add origin https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git
  27. git fetch origin $CIRRUS_CHANGE_IN_REPO $FETCH_DEPTH
  28. git reset --hard $CIRRUS_CHANGE_IN_REPO
  29. gradle_cache_template: &GRADLE_CACHE_TEMPLATE
  30. gradle_cache:
  31. folder: ${GRADLE_USER_HOME}/caches
  32. fingerprint_script: find -type f \( -name "*.gradle*" -or -name "gradle*.properties" \) | sort | xargs cat
  33. populate_script: mkdir -p ${GRADLE_USER_HOME}/caches
  34. cleanup_gradle_cache_script_template: &CLEANUP_GRADLE_CACHE_SCRIPT
  35. cleanup_gradle_script: |
  36. rm -rf "${GRADLE_USER_HOME}"/caches/7.*/
  37. rm -rf "${GRADLE_USER_HOME}"/daemon/
  38. rm -rf "${GRADLE_USER_HOME}"/caches/transforms-*
  39. rm -rf "${GRADLE_USER_HOME}"/caches/journal-*
  40. /usr/bin/find "${GRADLE_USER_HOME}"/caches/ -name "*.lock" -type f -delete
  41. yarn_cache_template: &YARN_CACHE_TEMPLATE
  42. yarn_cache:
  43. folder: '~/.yarn/berry/cache'
  44. fingerprint_script: cat server/sonar-web/yarn.lock
  45. jar_cache_template: &JAR_CACHE_TEMPLATE
  46. jar_cache:
  47. folder: '**/build/libs/*.jar'
  48. fingerprint_key: jar-cache_$CIRRUS_BUILD_ID
  49. eslint_report_cache_template: &ESLINT_REPORT_CACHE_TEMPLATE
  50. eslint_report_cache:
  51. folders:
  52. - server/sonar-web/eslint-report/
  53. - server/sonar-web/design-system/eslint-report/
  54. fingerprint_script: echo $CIRRUS_BUILD_ID
  55. jest_report_cache_template: &JEST_REPORT_CACHE_TEMPLATE
  56. jest_report_cache:
  57. folders:
  58. - server/sonar-web/coverage/
  59. - server/sonar-web/design-system/coverage/
  60. fingerprint_script: echo $CIRRUS_BUILD_ID
  61. junit_report_cache_template: &JUNIT_REPORT_CACHE_TEMPLATE
  62. junit_report_cache:
  63. folders:
  64. - '**/reports/jacoco'
  65. - '**/test-results/test'
  66. fingerprint_script: echo $CIRRUS_BUILD_ID
  67. build_cache_template: &BUILD_CACHE_TEMPLATE
  68. build_cache:
  69. folders:
  70. - '**/build/**/*'
  71. fingerprint_script: echo $CIRRUS_BUILD_ID
  72. cache_dependencies_task:
  73. container:
  74. dockerfile: .cirrus/Dockerfile
  75. cpu: 2
  76. memory: 4Gb
  77. <<: *DEFAULT_TEMPLATE
  78. <<: *GRADLE_CACHE_TEMPLATE
  79. script:
  80. - .cirrus/cirrus-cache-dependencies.sh
  81. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  82. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  83. build_task:
  84. depends_on: cache_dependencies
  85. container:
  86. dockerfile: .cirrus/Dockerfile
  87. cpu: 8
  88. memory: 8Gb
  89. <<: *DEFAULT_TEMPLATE
  90. <<: *GRADLE_CACHE_TEMPLATE
  91. <<: *BUILD_CACHE_TEMPLATE
  92. <<: *YARN_CACHE_TEMPLATE
  93. <<: *JAR_CACHE_TEMPLATE
  94. script: .cirrus/cirrus-build.sh
  95. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  96. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  97. yarn_lint_task:
  98. depends_on: cache_dependencies
  99. container:
  100. dockerfile: .cirrus/Dockerfile
  101. cpu: 3
  102. memory: 10Gb
  103. <<: *DEFAULT_TEMPLATE
  104. <<: *GRADLE_CACHE_TEMPLATE
  105. <<: *YARN_CACHE_TEMPLATE
  106. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  107. script:
  108. - .cirrus/cirrus-yarn-lint-report.sh
  109. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  110. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  111. yarn_check_task:
  112. depends_on: cache_dependencies
  113. container:
  114. dockerfile: .cirrus/Dockerfile
  115. cpu: 3
  116. memory: 5Gb
  117. <<: *DEFAULT_TEMPLATE
  118. <<: *GRADLE_CACHE_TEMPLATE
  119. <<: *YARN_CACHE_TEMPLATE
  120. script: |
  121. source .cirrus/cirrus-env
  122. ./gradlew yarn_check-ci
  123. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  124. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  125. yarn_validate_task:
  126. depends_on: cache_dependencies
  127. container:
  128. dockerfile: .cirrus/Dockerfile
  129. cpu: 8
  130. memory: 15Gb
  131. <<: *DEFAULT_TEMPLATE
  132. <<: *GRADLE_CACHE_TEMPLATE
  133. <<: *YARN_CACHE_TEMPLATE
  134. <<: *JEST_REPORT_CACHE_TEMPLATE
  135. script:
  136. - .cirrus/cirrus-yarn-validate-ci.sh
  137. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  138. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  139. junit_task:
  140. depends_on: cache_dependencies
  141. container:
  142. dockerfile: .cirrus/Dockerfile
  143. cpu: 8
  144. memory: 10Gb
  145. <<: *DEFAULT_TEMPLATE
  146. <<: *GRADLE_CACHE_TEMPLATE
  147. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  148. script:
  149. - .cirrus/cirrus-junit.sh
  150. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  151. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  152. sq_analysis_task:
  153. depends_on:
  154. - build
  155. - yarn_lint
  156. - yarn_validate
  157. - junit
  158. container:
  159. dockerfile: .cirrus/Dockerfile
  160. cpu: 7.5
  161. memory: 15Gb
  162. env:
  163. SONAR_HOST_URL: https://next.sonarqube.com/sonarqube
  164. SONAR_TOKEN: ENCRYPTED[!b6fd814826c51e64ee61b0b6f3ae621551f6413383f7170f73580e2e141ac78c4b134b506f6288c74faa0dd564c05a29!]
  165. <<: *GRADLE_CACHE_TEMPLATE
  166. <<: *BUILD_CACHE_TEMPLATE
  167. <<: *YARN_CACHE_TEMPLATE
  168. <<: *JEST_REPORT_CACHE_TEMPLATE
  169. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  170. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  171. script:
  172. - .cirrus/cirrus-sq-analysis.sh
  173. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  174. <<: *DEFAULT_ARTIFACTS_TEMPLATE