11name : Java CI with Gradle
2-
32on :
43 push :
5- branches : [ "master" ]
6- pull_request :
7- branches : [ "master" ]
8-
4+ branches :
5+ - master
6+ pull_request :
7+ branches :
8+ - master
9+ permissions :
10+ pull-requests : write
11+ contents : read
912jobs :
1013 build :
1114 runs-on : ubuntu-latest
15+ strategy :
16+ matrix :
17+ java : [21]
18+ fail-fast : false
1219 steps :
13- - uses : actions/checkout@v6
14- - name : Set up JDK 17
20+ - name : Checkout
21+ uses : actions/checkout@v6.0.2
22+
23+ - name : Check if dependency update
24+ id : check-dependency
25+ run : |
26+ if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then
27+ COMMIT_MSG=$(git log -1 --pretty=%B ${{ github.event.pull_request.head.sha }})
28+ else
29+ COMMIT_MSG=$(git log -1 --pretty=%B)
30+ fi
31+ if [[ "$COMMIT_MSG" == dependency:* ]]; then
32+ echo "is-dependency=true" >> $GITHUB_OUTPUT
33+ else
34+ echo "is-dependency=false" >> $GITHUB_OUTPUT
35+ fi
36+
37+ - name : Set up JDK ${{ matrix.java }}
1538 uses : actions/setup-java@v5
1639 with :
17- java-version : ' 21'
18- distribution : ' temurin'
19- cache : gradle
20- - uses : actions/cache@v5
40+ distribution : adopt
41+ java-version : ${{ matrix.java }}
42+
43+ - name : Cache Gradle
44+ uses : actions/cache@v5
2145 with :
22- path : |
23- ~/.gradle/caches
24- ~/.gradle/wrapper
25- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
26- restore-keys : |
27- ${{ runner.os }}-gradle-
28- - name : Grant execute permission for gradlew
46+ path : ~/.gradle/caches
47+ key : >-
48+ ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
49+ restore-keys : ' ${{ runner.os }}-gradle-'
50+
51+ - name : Make gradlew executable
2952 run : chmod +x gradlew
30- - name : Build with Gradle
31- run : ./gradlew shadowJar
32- - name : Upload a Build Artifact
33- uses : actions/upload-artifact@v6.0.0
53+
54+ - name : Compile the plugin
55+ if : steps.check-dependency.outputs.is-dependency == 'true'
56+ run : ./gradlew clean compileJava
57+
58+ - name : Build the plugin
59+ if : steps.check-dependency.outputs.is-dependency == 'false'
60+ run : ./gradlew clean shadowJar
61+
62+ - name : Upload built JAR
63+ uses : actions/upload-artifact@v6
64+ if : steps.check-dependency.outputs.is-dependency == 'false'
3465 with :
35- name : ' ParcelLockers'
36- path : build/libs/ParcelLockers*
66+ name : ParcelLockers Dev Build
67+ path : build/libs/ParcelLockers*.jar
0 commit comments