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.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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. cache_dependencies_task:
  68. container:
  69. dockerfile: .cirrus/Dockerfile
  70. cpu: 2
  71. memory: 4Gb
  72. <<: *DEFAULT_TEMPLATE
  73. <<: *GRADLE_CACHE_TEMPLATE
  74. script:
  75. - .cirrus/cirrus-cache-dependencies.sh
  76. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  77. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  78. build_task:
  79. depends_on: cache_dependencies
  80. container:
  81. dockerfile: .cirrus/Dockerfile
  82. cpu: 8
  83. memory: 8Gb
  84. <<: *DEFAULT_TEMPLATE
  85. <<: *GRADLE_CACHE_TEMPLATE
  86. <<: *YARN_CACHE_TEMPLATE
  87. <<: *JAR_CACHE_TEMPLATE
  88. build_script: .cirrus/cirrus-build.sh
  89. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  90. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  91. yarn_lint_task:
  92. depends_on: cache_dependencies
  93. container:
  94. dockerfile: .cirrus/Dockerfile
  95. cpu: 3
  96. memory: 4Gb
  97. <<: *DEFAULT_TEMPLATE
  98. <<: *GRADLE_CACHE_TEMPLATE
  99. <<: *YARN_CACHE_TEMPLATE
  100. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  101. script:
  102. - .cirrus/cirrus-yarn-lint-report.sh
  103. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  104. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  105. yarn_check_task:
  106. depends_on: cache_dependencies
  107. container:
  108. dockerfile: .cirrus/Dockerfile
  109. cpu: 3
  110. memory: 5Gb
  111. <<: *DEFAULT_TEMPLATE
  112. <<: *GRADLE_CACHE_TEMPLATE
  113. <<: *YARN_CACHE_TEMPLATE
  114. script: |
  115. source .cirrus/cirrus-env
  116. ./gradlew yarn_check-ci
  117. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  118. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  119. yarn_validate_task:
  120. depends_on: cache_dependencies
  121. container:
  122. dockerfile: .cirrus/Dockerfile
  123. cpu: 8
  124. memory: 15Gb
  125. <<: *DEFAULT_TEMPLATE
  126. <<: *GRADLE_CACHE_TEMPLATE
  127. <<: *YARN_CACHE_TEMPLATE
  128. <<: *JEST_REPORT_CACHE_TEMPLATE
  129. script:
  130. - .cirrus/cirrus-yarn-validate-ci.sh
  131. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  132. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  133. junit_task:
  134. depends_on: cache_dependencies
  135. container:
  136. dockerfile: .cirrus/Dockerfile
  137. cpu: 8
  138. memory: 10Gb
  139. <<: *DEFAULT_TEMPLATE
  140. <<: *GRADLE_CACHE_TEMPLATE
  141. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  142. script:
  143. - .cirrus/cirrus-junit.sh
  144. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  145. <<: *DEFAULT_ARTIFACTS_TEMPLATE
  146. sq_analysis_task:
  147. depends_on:
  148. - yarn_lint
  149. - yarn_validate
  150. - junit
  151. container:
  152. dockerfile: .cirrus/Dockerfile
  153. cpu: 7.5
  154. memory: 15Gb
  155. env:
  156. SONAR_HOST_URL: https://next.sonarqube.com/sonarqube
  157. SONAR_TOKEN: ENCRYPTED[!b6fd814826c51e64ee61b0b6f3ae621551f6413383f7170f73580e2e141ac78c4b134b506f6288c74faa0dd564c05a29!]
  158. <<: *GRADLE_CACHE_TEMPLATE
  159. <<: *YARN_CACHE_TEMPLATE
  160. <<: *JEST_REPORT_CACHE_TEMPLATE
  161. <<: *ESLINT_REPORT_CACHE_TEMPLATE
  162. <<: *JUNIT_REPORT_CACHE_TEMPLATE
  163. script:
  164. - .cirrus/cirrus-sq-analysis.sh
  165. <<: *CLEANUP_GRADLE_CACHE_SCRIPT
  166. <<: *DEFAULT_ARTIFACTS_TEMPLATE