GitHub Actions: build using various Java versions and publish snapshot in single job to reduce overhead

This commit is contained in:
Karl Tauber
2025-10-28 13:56:58 +01:00
parent 056da35758
commit 5263125a04

View File

@@ -20,7 +20,7 @@ on:
jobs:
build:
name: build (11)
name: build
runs-on: ubuntu-latest
steps:
@@ -39,10 +39,35 @@ jobs:
if: github.repository == 'JFormDesigner/FlatLaf'
run: ./gradlew errorprone clean
- name: Build with Gradle
# test against
# - Java 8 (minimum requirement)
# - Java LTS versions (11, 17, ...)
# - latest Java version(s)
- name: Build with Java 8
if: github.repository == 'JFormDesigner/FlatLaf'
run: ./gradlew build clean -Dtoolchain=8
- name: Build with Java 17 LTS
if: github.repository == 'JFormDesigner/FlatLaf'
run: ./gradlew build clean -Dtoolchain=17
- name: Build with Java 21 LTS
if: github.repository == 'JFormDesigner/FlatLaf'
run: ./gradlew build clean -Dtoolchain=21
- name: Build with Java 25 LTS
if: github.repository == 'JFormDesigner/FlatLaf'
run: ./gradlew build clean -Dtoolchain=25
# build with Java 11 for snapshot
- name: Build with Java 11 LTS
run: ./gradlew build
- name: Upload artifacts
- name: Upload artifacts to GitHub Actions
uses: actions/upload-artifact@v4
with:
name: FlatLaf-build-artifacts
@@ -53,56 +78,11 @@ jobs:
!**/*-sources.jar
build-on:
runs-on: ubuntu-latest
needs: build
if: github.repository == 'JFormDesigner/FlatLaf'
strategy:
matrix:
# test against
# - Java 8 (minimum requirement)
# - Java LTS versions (11, 17, ...)
# - latest Java version(s)
java:
- 8
- 17 # LTS
- 21 # LTS
- 25 # LTS
steps:
- uses: actions/checkout@v4
- name: Setup Java 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: temurin # pre-installed on ubuntu-latest
cache: gradle
- name: Build with Gradle
run: ./gradlew build -Dtoolchain=${{ matrix.java }}
snapshot:
runs-on: ubuntu-latest
needs: build-on
if: |
github.event_name == 'push' &&
(github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/heads/develop-' )) &&
github.repository == 'JFormDesigner/FlatLaf'
steps:
- uses: actions/checkout@v4
- name: Setup Java 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: temurin # pre-installed on ubuntu-latest
cache: gradle
- name: Publish snapshot to Sonatype Central
if: |
github.repository == 'JFormDesigner/FlatLaf' &&
github.event_name == 'push' &&
(github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/heads/develop-' ))
run: ./gradlew publish -PskipFonts -Dorg.gradle.internal.publish.checksums.insecure=true -Dorg.gradle.parallel=false
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
@@ -111,7 +91,7 @@ jobs:
release:
runs-on: ubuntu-latest
needs: build-on
needs: build
if: |
github.event_name == 'push' &&
startsWith( github.ref, 'refs/tags/' ) &&