nightly-no-cache.yml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. name: Nightly build without cache
  2. on:
  3. schedule:
  4. # strange schedule to reduce the risk of DDOS GitHub infra
  5. - cron: "48 4 * * *"
  6. workflow_dispatch:
  7. jobs:
  8. build:
  9. runs-on: ubuntu-latest
  10. steps:
  11. - uses: actions/checkout@v2.3.4
  12. - name: Set up JDK 11 for running Gradle
  13. uses: actions/setup-java@v2
  14. with:
  15. distribution: adopt
  16. java-version: 11
  17. - name: Build
  18. env:
  19. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  20. uses: gradle/gradle-build-action@v2
  21. with:
  22. # javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
  23. arguments: build --no-build-cache -x javadoc
  24. build-gradle-plugins:
  25. runs-on: ubuntu-latest
  26. steps:
  27. - uses: actions/checkout@v2.3.4
  28. - name: Set up JDK 11 for running Gradle
  29. uses: actions/setup-java@v2
  30. with:
  31. distribution: adopt
  32. java-version: 11
  33. - name: Build
  34. uses: gradle/gradle-build-action@v2
  35. with:
  36. arguments: build --no-build-cache
  37. build-root-directory: gradle-plugins
  38. test:
  39. runs-on: ubuntu-latest
  40. strategy:
  41. matrix:
  42. test-java-version:
  43. - 8
  44. - 11
  45. - 15
  46. vm:
  47. - hotspot
  48. - openj9
  49. fail-fast: false
  50. steps:
  51. - uses: actions/checkout@v2.3.4
  52. - id: setup-test-java
  53. name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests
  54. uses: actions/setup-java@v2
  55. with:
  56. distribution: adopt-${{ matrix.vm }}
  57. java-version: ${{ matrix.test-java-version }}
  58. - name: Set up JDK 11 for running Gradle
  59. uses: actions/setup-java@v2
  60. with:
  61. distribution: adopt
  62. java-version: 11
  63. - name: Test
  64. env:
  65. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  66. uses: gradle/gradle-build-action@v2
  67. with:
  68. arguments: test -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 --no-build-cache
  69. testLatestDeps:
  70. runs-on: ubuntu-latest
  71. steps:
  72. - uses: actions/checkout@v2.3.4
  73. - name: Set up JDK 11 for running Gradle
  74. uses: actions/setup-java@v2
  75. with:
  76. distribution: adopt
  77. java-version: 11
  78. - name: Test
  79. env:
  80. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  81. uses: gradle/gradle-build-action@v2
  82. with:
  83. arguments: test -PtestLatestDeps=true --no-build-cache
  84. smoke-test:
  85. runs-on: ${{ matrix.os }}
  86. strategy:
  87. matrix:
  88. os:
  89. - windows-2019
  90. - ubuntu-latest
  91. smoke-test-suite:
  92. - jetty
  93. - liberty
  94. - payara
  95. - tomcat
  96. - tomee
  97. - websphere
  98. - wildfly
  99. - other
  100. exclude:
  101. - os: windows-2019
  102. smoke-test-suite: websphere
  103. fail-fast: false
  104. steps:
  105. - name: Support longpaths
  106. run: git config --system core.longpaths true
  107. if: matrix.os == 'windows-2019'
  108. - uses: actions/checkout@v2.3.4
  109. - name: Set up JDK 11 for running Gradle
  110. uses: actions/setup-java@v2
  111. with:
  112. distribution: adopt
  113. java-version: 11
  114. - name: Test
  115. env:
  116. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  117. uses: gradle/gradle-build-action@v2
  118. with:
  119. arguments: ":smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }} --no-build-cache"
  120. # muzzle is intentionally not included in the nightly-no-cache build because
  121. # it doesn't use gradle cache anyways and so is already covered by the normal nightly build
  122. examples:
  123. runs-on: ubuntu-latest
  124. steps:
  125. - uses: actions/checkout@v2.3.4
  126. - name: Set up JDK 11 for running Gradle
  127. uses: actions/setup-java@v2
  128. with:
  129. distribution: adopt
  130. java-version: 11
  131. - name: Set up gradle cache
  132. uses: gradle/gradle-build-action@v2
  133. - name: Local publish of artifacts
  134. # javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
  135. run: ./gradlew publishToMavenLocal -x javadoc
  136. - name: Local publish of gradle plugins
  137. # javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
  138. run: ./gradlew publishToMavenLocal -x javadoc
  139. working-directory: gradle-plugins
  140. - name: Build distro
  141. run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts --no-build-cache
  142. working-directory: examples/distro
  143. - name: Build extension
  144. run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts --no-build-cache
  145. working-directory: examples/extension
  146. - name: Run muzzle check against extension
  147. run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
  148. working-directory: examples/extension
  149. issue:
  150. name: Open issue on failure
  151. needs: [ build, test, testLatestDeps, smoke-test, examples ]
  152. runs-on: ubuntu-latest
  153. if: always()
  154. steps:
  155. # run this action to get workflow conclusion
  156. # You can get conclusion by env (env.WORKFLOW_CONCLUSION)
  157. - uses: technote-space/workflow-conclusion-action@v2.2
  158. - uses: actions/checkout@v2.3.4
  159. - uses: JasonEtco/create-an-issue@v2.6
  160. if: env.WORKFLOW_CONCLUSION == 'failure' # notify only if failure
  161. env:
  162. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  163. with:
  164. filename: .github/templates/workflow-failed.md