Skip to content

Commit 6c73902

Browse files
committed
Build with multiple Java versions in CI
1 parent 05d53da commit 6c73902

File tree

4 files changed

+37
-15
lines changed

4 files changed

+37
-15
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,32 @@
11
name: "CI"
22
on: [push, pull_request]
3+
4+
env:
5+
DEFAULT_JAVA_VERSION: 17
6+
DEFAULT_JAVA_DISTRIBUTION: 'microsoft'
7+
38
jobs:
49
build:
510
name: Build
611
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'
730
steps:
831
- name: 'Checkout'
932
uses: actions/checkout@v2
@@ -16,13 +39,11 @@ jobs:
1639
~/.m2
1740
~/.gradle
1841
key: ${{ runner.os }}-gradle-${{ hashFiles('build.gradle') }}
19-
- name: Validate Gradle wrapper
20-
uses: gradle/wrapper-validation-action@v1
2142
- name: 'Setup Java'
2243
uses: actions/setup-java@v1
2344
with:
24-
java-version: 17
25-
java-package: jdk
45+
distribution: ${{ matrix.distribution }}
46+
java-version: ${{ matrix.java }}
2647
- name: 'Mark tag as release'
2748
if: startsWith(github.ref, 'refs/tags/')
2849
run: echo "RELEASE=true" >> $GITHUB_ENV
@@ -55,33 +76,33 @@ jobs:
5576
if: ${{ env.COVERALLS_REPO_TOKEN }}
5677
run: ./gradlew test jacocoTestReport coveralls
5778
- name: 'Deploy to CurseForge'
58-
if: startsWith(github.ref, 'refs/tags/')
79+
if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION)
5980
env:
6081
CURSEFORGE_KEY_SECRET: ${{ secrets.CURSEFORGE_KEY_SECRET }}
6182
run: ./gradlew curseforge
6283
- name: 'Deploy to Modrinth'
63-
if: startsWith(github.ref, 'refs/tags/')
84+
if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION)
6485
env:
6586
MODRINTH_KEY_SECRET: ${{ secrets.MODRINTH_KEY_SECRET }}
6687
run: ./gradlew modrinth
6788
- name: 'Create GitHub release'
6889
id: create_release
69-
if: startsWith(github.ref, 'refs/tags/')
90+
if: startsWith(github.ref, 'refs/tags/') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION)
7091
uses: actions/create-release@v1
7192
env:
7293
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7394
with:
7495
tag_name: ${{ github.ref }}
7596
release_name: ${{ github.ref }}
7697
- name: 'Deploy to Maven'
77-
if: startsWith(github.ref, 'refs/heads/master')
98+
if: startsWith(github.ref, 'refs/heads/master') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION)
7899
env:
79100
MAVEN_URL: ${{ secrets.MAVEN_URL }}
80101
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
81102
MAVEN_KEY: ${{ secrets.MAVEN_KEY }}
82103
run: ./gradlew publish
83104
- name: 'Deploy JavaDoc to GitHub Pages'
84-
if: startsWith(github.ref, 'refs/heads/master')
105+
if: startsWith(github.ref, 'refs/heads/master') && startsWith(matrix.java, env.DEFAULT_JAVA_VERSION) && startsWith(matrix.distribution, env.DEFAULT_JAVA_DISTRIBUTION)
85106
uses: JamesIves/[email protected]
86107
with:
87108
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
33
id 'com.matthewprenger.cursegradle' version '1.4.0'
44
id 'com.github.kt3k.coveralls' version '2.12.0'
5-
id 'com.diffplug.spotless' version '5.14.3'
5+
id 'com.diffplug.spotless' version '6.25.0'
66
id 'com.github.johnrengelman.shadow' version '8.1.1'
77
id 'com.modrinth.minotaur' version '2.+'
88
}
@@ -105,12 +105,12 @@ dependencies {
105105
transitive = false
106106
}
107107

108-
modLib "org.graalvm.sdk:graal-sdk:22.3.2"
109-
shadow "org.graalvm.sdk:graal-sdk:22.3.2"
110-
modLib ("org.graalvm.js:js:22.3.2") {
108+
modLib "org.graalvm.sdk:graal-sdk:${project.graal_version}"
109+
shadow "org.graalvm.sdk:graal-sdk:${project.graal_version}"
110+
modLib ("org.graalvm.js:js:${project.graal_version}") {
111111
exclude group: 'com.ibm.icu', module: 'icu4j'
112112
}
113-
shadow "org.graalvm.js:js:22.3.2"
113+
shadow "org.graalvm.js:js:${project.graal_version}"
114114

115115

116116
// Project lombok

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ integrateddynamics_version=1.20.1-1.21.3-723
66
release_type=release
77
fingerprint=bd0353b3e8a2810d60dd584e256e364bc3bedd44
88

9+
graal_version=22.3.2
910
commoncapabilities_version=1.20.1-2.9.0-98
1011

1112
# Workaround for Spotless bug
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)