List: #914
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle | |
name: CI | |
on: | |
push: | |
branches: | |
- '*' | |
tags: | |
- '[0-9]*' | |
paths-ignore: | |
- '**.md' | |
- '.*' | |
- '**/.settings/**' | |
- 'flatlaf-core/svg/**' | |
- 'flatlaf-testing/dumps/**' | |
- 'flatlaf-testing/misc/**' | |
- 'images/**' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# test against | |
# - Java 8 (minimum requirement) | |
# - Java LTS versions (11, 17, ...) | |
# - latest Java version(s) | |
java: | |
- 8 | |
- 11 # LTS | |
- 17 # LTS | |
- 21 # LTS | |
- 23 # latest | |
toolchain: [""] | |
# include: | |
# - java: 21 | |
# toolchain: 22 # latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: gradle/actions/wrapper-validation@v3 | |
if: matrix.java == '8' | |
- name: Setup Java ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java }} | |
distribution: temurin # Java 8, 11, 17 and 21 are pre-installed on ubuntu-latest | |
cache: gradle | |
- name: Check with Error Prone | |
if: matrix.java == '11' | |
run: ./gradlew errorprone clean -Dtoolchain=${{ matrix.toolchain }} | |
- name: Build with Gradle | |
run: ./gradlew build -Dtoolchain=${{ matrix.toolchain }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
if: matrix.java == '11' | |
with: | |
name: FlatLaf-build-artifacts | |
path: | | |
flatlaf-*/build/libs | |
flatlaf-*/flatlaf-*/build/libs | |
!**/*-javadoc.jar | |
!**/*-sources.jar | |
snapshot: | |
runs-on: ubuntu-latest | |
needs: build | |
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 oss.sonatype.org | |
run: ./gradlew publish -PskipFonts -Dorg.gradle.internal.publish.checksums.insecure=true -Dorg.gradle.parallel=false | |
env: | |
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
if: | | |
github.event_name == 'push' && | |
startsWith( github.ref, 'refs/tags/' ) && | |
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: Release a new stable version to Maven Central | |
run: ./gradlew publish :flatlaf-demo:build :flatlaf-theme-editor:build -PskipFonts -Prelease -Dorg.gradle.parallel=false | |
env: | |
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | |
SIGNING_KEY: ${{ secrets.SIGNING_KEY }} | |
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} | |
- name: Install lftp | |
run: sudo apt-get -y install lftp | |
- name: Upload demo and theme editor | |
run: > | |
lftp -c "set ftp:ssl-force true; | |
open -u ${{ secrets.FTP_USERNAME }},${{ secrets.FTP_PASSWORD }} ${{ secrets.FTP_SERVER }}; | |
mput flatlaf-demo/build/libs/flatlaf-demo-*.jar; | |
mput flatlaf-theme-editor/build/libs/flatlaf-theme-editor-*.jar" |