Skip to content

Update key documentation files. #51

Update key documentation files.

Update key documentation files. #51

Workflow file for this run

name: CI
on:
push:
branches: [ master, main ]
tags: [ 'v*' ]
pull_request:
branches: [ master, main ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Test (Ubuntu)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Temurin JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- name: Install headless display dependencies for TestFX
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq xvfb libgtk-3-0 maven
- name: Run all tests (including UI tests in headless mode)
env:
TESTFX_ROBOT: glass
TESTFX_HEADLESS: true
GLASS_PLATFORM: Monocle
MONOCLE_PLATFORM: Headless
MAVEN_OPTS: "--add-exports javafx.graphics/com.sun.glass.ui=ALL-UNNAMED --add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED"
run: |
mvn -B test
- name: Upload test results
if: always() && github.actor != 'nektos/act'
uses: actions/upload-artifact@v4
with:
name: test-results
path: target/surefire-reports/
build-linux:
name: Build (Linux)
runs-on: ubuntu-latest
needs: [test]
if: github.actor != 'nektos/act'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Temurin JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- name: Build without tests
run: |
mvn -B -Djavafx.platform=linux -DskipTests clean package
- name: Upload fat JAR
if: success() && github.actor != 'nektos/act'
uses: actions/upload-artifact@v4
with:
name: FDDTools-fat-jar
path: target/FDDTools-*.jar
package-macos:
name: Package (macOS app-image)
runs-on: macos-latest
needs: test
if: github.actor != 'nektos/act'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Temurin JDK 21 (includes jpackage)
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- name: Compute app version from tag (if present)
if: startsWith(github.ref, 'refs/tags/')
run: echo "APP_VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
- name: Package app-image
run: |
if [ -n "${APP_VERSION:-}" ]; then MVN_VER_ARG="-Dfddtools.app.version=$APP_VERSION"; else MVN_VER_ARG=""; fi
mvn -B -DskipTests $MVN_VER_ARG \
-Djavafx.platform=mac-aarch64 \
-Pmacos-app-image \
-DskipDmg=${{ startsWith(github.ref, 'refs/tags/v') && 'false' || 'true' }} \
verify
- name: Upload app-image
if: success() && github.actor != 'nektos/act'
uses: actions/upload-artifact@v4
with:
name: FDDTools-macos-app-image
path: target/dist/macos/app-image/**
- name: Upload DMG (on tags)
if: startsWith(github.ref, 'refs/tags/v') && github.actor != 'nektos/act'
uses: actions/upload-artifact@v4
with:
name: FDDTools-macos-dmg
path: target/dist/macos/*.dmg
release:
name: Publish GitHub Release (DMG + JAR)
if: startsWith(github.ref, 'refs/tags/v') && github.actor != 'nektos/act'
needs: [package-macos]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download DMG artifact
uses: actions/download-artifact@v4
with:
name: FDDTools-macos-dmg
path: dist/macos
- name: Download fat JAR artifact
uses: actions/download-artifact@v4
with:
name: FDDTools-fat-jar
path: dist/jar
- name: Create Release and upload assets
uses: softprops/action-gh-release@v2
with:
files: |
dist/macos/*.dmg
dist/jar/*.jar
generate_release_notes: true
name: ${{ github.ref_name }}