reusable-test-latest-deps.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. name: Reusable - Test latest deps
  2. on:
  3. workflow_call:
  4. inputs:
  5. cache-read-only:
  6. type: boolean
  7. required: false
  8. no-build-cache:
  9. type: boolean
  10. required: false
  11. secrets:
  12. GRADLE_ENTERPRISE_ACCESS_KEY:
  13. required: false
  14. GE_CACHE_USERNAME:
  15. required: false
  16. GE_CACHE_PASSWORD:
  17. required: false
  18. permissions:
  19. contents: read
  20. jobs:
  21. test-latest-deps:
  22. name: testLatestDeps${{ matrix.test-partition }}
  23. runs-on: ubuntu-latest
  24. strategy:
  25. matrix:
  26. test-partition:
  27. - 0
  28. - 1
  29. - 2
  30. - 3
  31. fail-fast: false
  32. steps:
  33. - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
  34. - name: Free disk space
  35. run: .github/scripts/gha-free-disk-space.sh
  36. - name: Set up JDK for running Gradle
  37. uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
  38. with:
  39. distribution: temurin
  40. java-version: 17.0.6
  41. - name: Increase gradle daemon heap size
  42. run: |
  43. sed -i "s/org.gradle.jvmargs=/org.gradle.jvmargs=-Xmx3g /" gradle.properties
  44. # vaadin tests use pnpm
  45. - name: Cache pnpm modules
  46. uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
  47. with:
  48. path: ~/.pnpm-store
  49. key: ${{ runner.os }}-test-latest-cache-pnpm-modules
  50. - name: Start deadlock detector
  51. run: .github/scripts/deadlock-detector.sh
  52. - name: List tests
  53. env:
  54. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  55. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  56. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  57. uses: gradle/gradle-build-action@29c0906b64b8fc82467890bfb7a0a7ef34bda89e # v3.1.0
  58. with:
  59. arguments: >
  60. check -x spotlessCheck
  61. listTestsInPartition
  62. -PtestPartition=${{ matrix.test-partition }}
  63. -PtestLatestDeps=true
  64. cache-read-only: true
  65. - name: Set test tasks
  66. run: |
  67. echo "test-tasks=$(cat test-tasks.txt | xargs echo | sed 's/\n/ /g')" >> $GITHUB_ENV
  68. - name: Test
  69. uses: gradle/gradle-build-action@29c0906b64b8fc82467890bfb7a0a7ef34bda89e # v3.1.0
  70. env:
  71. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  72. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  73. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  74. with:
  75. arguments: >
  76. ${{ env.test-tasks }}
  77. -PtestLatestDeps=true
  78. ${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
  79. cache-read-only: ${{ inputs.cache-read-only }}
  80. # gradle enterprise is used for the build cache
  81. gradle-home-cache-excludes: caches/build-cache-1
  82. - name: Upload deadlock detector artifacts if any
  83. if: failure()
  84. uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
  85. with:
  86. name: deadlock-detector-test-latest-${{ matrix.test-java-version }}-${{ matrix.vm }}-${{ matrix.test-partition }}
  87. path: /tmp/deadlock-detector-*
  88. if-no-files-found: ignore
  89. - name: Upload jvm crash dump files if any
  90. if: failure()
  91. uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
  92. with:
  93. name: javacore-test-latest-${{ matrix.test-java-version }}-${{ matrix.test-partition }}
  94. path: |
  95. **/hs_err_pid*.log
  96. **/javacore.*.txt
  97. **/Snap.*.trc
  98. **/core.*.dmp
  99. **/jitdump.*.dmp
  100. if-no-files-found: ignore