test.yml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. name: Test
  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. jobs:
  19. test:
  20. runs-on: ubuntu-latest
  21. strategy:
  22. matrix:
  23. test-java-version:
  24. - 8
  25. - 11
  26. - 17
  27. vm:
  28. - temurin
  29. - adopt-openj9
  30. fail-fast: false
  31. steps:
  32. - uses: actions/checkout@v3
  33. - id: setup-test-java
  34. name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests
  35. uses: actions/setup-java@v2
  36. with:
  37. distribution: ${{ matrix.vm }}
  38. java-version: ${{ matrix.test-java-version }}
  39. - name: Set up JDK 11 for running Gradle
  40. uses: actions/setup-java@v2
  41. with:
  42. distribution: temurin
  43. java-version: 11
  44. - name: Start deadlock detector
  45. run: .github/scripts/deadlock-detector.sh
  46. - name: Test
  47. env:
  48. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  49. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  50. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  51. uses: gradle/gradle-build-action@v2
  52. with:
  53. arguments: check -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false ${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
  54. # only push cache for one matrix option since github action cache space is limited
  55. cache-read-only: ${{ inputs.cache-read-only || matrix.test-java-version != 11 || matrix.vm != 'hotspot' }}
  56. - name: Upload deadlock detector artifacts if any
  57. if: always()
  58. uses: actions/upload-artifact@v2
  59. with:
  60. name: deadlock-detector-test-${{ matrix.test-java-version }}
  61. path: /tmp/deadlock-detector-*
  62. if-no-files-found: ignore
  63. - name: Upload jvm crash dump files if any
  64. if: always()
  65. uses: actions/upload-artifact@v2
  66. with:
  67. name: javacore-test-${{ matrix.test-java-version }}
  68. path: |
  69. "**/hs_err_pid*.log"
  70. "**/javacore.*.txt"
  71. "**/Snap.*.trc"
  72. "**/core.*.dmp"
  73. "**/jitdump.*.dmp"
  74. if-no-files-found: ignore