pr.yml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. name: Build PR snapshot
  2. on:
  3. pull_request:
  4. paths:
  5. - '**.gradle'
  6. - '**.properties'
  7. - '**/src/**'
  8. types: [ opened, synchronize, reopened ]
  9. jobs:
  10. validate-gradle:
  11. name: "Validate Gradle wrapper"
  12. runs-on: ubuntu-20.04
  13. steps:
  14. - uses: actions/checkout@v2
  15. with:
  16. fetch-depth: 0
  17. - uses: gradle/wrapper-validation-action@v1
  18. license:
  19. name: "Verify License integrity"
  20. runs-on: ubuntu-20.04
  21. if: |
  22. !contains(github.event.head_commit.message, '[ci skip]')
  23. steps:
  24. - uses: actions/checkout@v2
  25. - name: Set up JDK 8
  26. uses: actions/setup-java@v2
  27. with:
  28. java-version: 8
  29. distribution: 'adopt'
  30. - name: Cache Gradle wrapper
  31. uses: actions/cache@v2
  32. with:
  33. path: ~/.gradle/wrapper
  34. key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }}
  35. restore-keys: gradle-wrapper-${{ runner.os }}-
  36. - name: Cache packages
  37. id: cache-packages
  38. uses: actions/cache@v2
  39. with:
  40. path: ~/.gradle/caches
  41. key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
  42. restore-keys: gradle-packages-${{ runner.os }}-
  43. - name: Make gradlew executable
  44. run: chmod +x ./gradlew
  45. - name: Build with Gradle
  46. run: |
  47. ./gradlew licenseCheck
  48. # Remove some potentially problematic files from the Gradle cache,
  49. # so that GitHub Actions doesn't cache them.
  50. - name: Cleanup Gradle Cache
  51. if: steps.cache-packages.outputs.cache-hit != 'true'
  52. run: |
  53. rm -f $HOME/.gradle/caches/*/*.lock
  54. rm -rf $HOME/.gradle/caches/*/plugin-resolution/
  55. rm -rf $HOME/.gradle/caches/*/scripts/
  56. rm -rf $HOME/.gradle/caches/*/scripts-remapped/
  57. rm -rf $HOME/.gradle/caches/*/fileHashes/
  58. rm -f $HOME/.gradle/caches/journal-1/file-access.bin
  59. build:
  60. name: "Build"
  61. strategy:
  62. matrix:
  63. java: [ 8, 11, 15 ]
  64. runs-on: ubuntu-20.04
  65. if: |
  66. !contains(github.event.head_commit.message, '[ci skip]')
  67. steps:
  68. - uses: actions/checkout@v2
  69. - name: Set up JDK ${{ matrix.java }}
  70. uses: actions/setup-java@v2
  71. with:
  72. java-version: ${{ matrix.java }}
  73. distribution: 'adopt'
  74. - name: Cache Gradle wrapper
  75. uses: actions/cache@v2
  76. with:
  77. path: ~/.gradle/wrapper
  78. key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }}
  79. restore-keys: gradle-wrapper-${{ runner.os }}-
  80. - name: Cache packages
  81. id: cache-packages
  82. uses: actions/cache@v2
  83. with:
  84. path: ~/.gradle/caches
  85. key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
  86. restore-keys: gradle-packages-${{ runner.os }}-
  87. - name: Make gradlew executable
  88. run: chmod +x ./gradlew
  89. - name: Build with Gradle
  90. run: |
  91. ./gradlew build --stacktrace --no-daemon
  92. # Remove some potentially problematic files from the Gradle cache,
  93. # so that GitHub Actions doesn't cache them.
  94. - name: Cleanup Gradle Cache
  95. if: steps.cache-packages.outputs.cache-hit != 'true'
  96. run: |
  97. rm -f $HOME/.gradle/caches/*/*.lock
  98. rm -rf $HOME/.gradle/caches/*/plugin-resolution/
  99. rm -rf $HOME/.gradle/caches/*/scripts/
  100. rm -rf $HOME/.gradle/caches/*/scripts-remapped/
  101. rm -rf $HOME/.gradle/caches/*/fileHashes/
  102. rm -f $HOME/.gradle/caches/journal-1/file-access.bin
  103. - name: Upload Artifacts
  104. uses: actions/upload-artifact@v2
  105. with:
  106. name: '${{ github.event.repository.name }} PR${{ github.event.number }} Snapshot #${{ github.run_number }}'
  107. path: |
  108. **/build/libs/
  109. !build/libs/
  110. !**/*-dev.jar
  111. !**/*-shadow.jar
  112. !**/*-transformProduction*.jar
  113. !**/testmod*/