|
1 | 1 | name: "CI" |
2 | 2 | on: [push, pull_request] |
| 3 | + |
| 4 | +env: |
| 5 | + DEFAULT_JAVA_VERSION: 17 |
| 6 | + DEFAULT_JAVA_DISTRIBUTION: 'microsoft' |
| 7 | + |
3 | 8 | jobs: |
4 | 9 | build: |
5 | 10 | name: Build |
6 | 11 | runs-on: ubuntu-latest |
| 12 | + strategy: |
| 13 | + fail-fast: false |
| 14 | + matrix: |
| 15 | + java: |
| 16 | + - 17 |
| 17 | + - 18 |
| 18 | + - 19 |
| 19 | + - 20 |
| 20 | + - 21 |
| 21 | + - 22 |
| 22 | + - 23 |
| 23 | + distribution: |
| 24 | + - 'adopt-hotspot' |
| 25 | + include: |
| 26 | + - java: 17 |
| 27 | + distribution: 'microsoft' |
| 28 | + - java: 21 |
| 29 | + distribution: 'microsoft' |
7 | 30 | steps: |
8 | 31 | - name: 'Checkout' |
9 | 32 | uses: actions/checkout@v2 |
|
21 | 44 | - name: 'Setup Java' |
22 | 45 | uses: actions/setup-java@v1 |
23 | 46 | with: |
24 | | - java-version: 17 |
25 | | - java-package: jdk |
| 47 | + distribution: ${{ matrix.distribution }} |
| 48 | + java-version: ${{ matrix.java }} |
26 | 49 | - name: 'Mark tag as release' |
27 | 50 | if: startsWith(github.ref, 'refs/tags/') |
28 | 51 | run: echo "RELEASE=true" >> $GITHUB_ENV |
@@ -55,33 +78,33 @@ jobs: |
55 | 78 | if: ${{ env.COVERALLS_REPO_TOKEN }} |
56 | 79 | run: ./gradlew test jacocoTestReport coveralls |
57 | 80 | - name: 'Deploy to CurseForge' |
58 | | - if: startsWith(github.ref, 'refs/tags/') |
| 81 | + if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION) |
59 | 82 | env: |
60 | 83 | CURSEFORGE_KEY_SECRET: ${{ secrets.CURSEFORGE_KEY_SECRET }} |
61 | 84 | run: ./gradlew curseforge |
62 | 85 | - name: 'Deploy to Modrinth' |
63 | | - if: startsWith(github.ref, 'refs/tags/') |
| 86 | + if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION) |
64 | 87 | env: |
65 | 88 | MODRINTH_KEY_SECRET: ${{ secrets.MODRINTH_KEY_SECRET }} |
66 | 89 | run: ./gradlew modrinth |
67 | 90 | - name: 'Create GitHub release' |
68 | 91 | id: create_release |
69 | | - if: startsWith(github.ref, 'refs/tags/') |
| 92 | + if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION) |
70 | 93 | uses: actions/create-release@v1 |
71 | 94 | env: |
72 | 95 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
73 | 96 | with: |
74 | 97 | tag_name: ${{ github.ref }} |
75 | 98 | release_name: ${{ github.ref }} |
76 | 99 | - name: 'Deploy to Maven' |
77 | | - if: startsWith(github.ref, 'refs/heads/master') |
| 100 | + if: startsWith(github.ref, 'refs/heads/master') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION) |
78 | 101 | env: |
79 | 102 | MAVEN_URL: ${{ secrets.MAVEN_URL }} |
80 | 103 | MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} |
81 | 104 | MAVEN_KEY: ${{ secrets.MAVEN_KEY }} |
82 | 105 | run: ./gradlew publish |
83 | 106 | - name: 'Deploy JavaDoc to GitHub Pages' |
84 | | - if: startsWith(github.ref, 'refs/heads/master') |
| 107 | + if: startsWith(github.ref, 'refs/heads/master') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION) |
85 | 108 | |
86 | 109 | with: |
87 | 110 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
0 commit comments