mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 14:00:55 +03:00
155 lines
4.6 KiB
YAML
155 lines
4.6 KiB
YAML
# 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
|
|
toolchain: [""]
|
|
include:
|
|
- java: 17
|
|
toolchain: 21 # latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: gradle/wrapper-validation-action@v1
|
|
if: matrix.java == '8'
|
|
|
|
- name: Setup Java ${{ matrix.java }}
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: ${{ matrix.java }}
|
|
distribution: temurin # Java 8, 11 and 17 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 :flatlaf-theme-editor:build -PskipFonts -Dorg.gradle.internal.publish.checksums.insecure=true -Dorg.gradle.parallel=false
|
|
env:
|
|
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
|
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
|
|
|
- name: Upload theme editor
|
|
uses: sebastianpopp/ftp-action@releases/v2
|
|
with:
|
|
host: ${{ secrets.FTP_SERVER }}
|
|
user: ${{ secrets.FTP_USERNAME }}
|
|
password: ${{ secrets.FTP_PASSWORD }}
|
|
forceSsl: true
|
|
localDir: "flatlaf-theme-editor/build/libs"
|
|
remoteDir: "snapshots"
|
|
options: "--only-newer --no-recursion --verbose=1"
|
|
|
|
|
|
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: Upload demo
|
|
uses: sebastianpopp/ftp-action@releases/v2
|
|
with:
|
|
host: ${{ secrets.FTP_SERVER }}
|
|
user: ${{ secrets.FTP_USERNAME }}
|
|
password: ${{ secrets.FTP_PASSWORD }}
|
|
forceSsl: true
|
|
localDir: "flatlaf-demo/build/libs"
|
|
remoteDir: "."
|
|
options: "--only-newer --no-recursion --verbose=1"
|
|
|
|
- name: Upload theme editor
|
|
uses: sebastianpopp/ftp-action@releases/v2
|
|
with:
|
|
host: ${{ secrets.FTP_SERVER }}
|
|
user: ${{ secrets.FTP_USERNAME }}
|
|
password: ${{ secrets.FTP_PASSWORD }}
|
|
forceSsl: true
|
|
localDir: "flatlaf-theme-editor/build/libs"
|
|
remoteDir: "."
|
|
options: "--only-newer --no-recursion --verbose=1"
|