Skip to content

CI & Formatting

Flaggi uses GitHub Actions for build checks, formatting checks, website deployment and releases.

Releases are built in CI with a multi-OS matrix in .github/workflows/release.yml.

  • Automatic on Git tags matching v* (example: v1.2.0)
  • Manual via workflow_dispatch
  • Windows installer (.exe)
  • macOS installer (.dmg)
  • Linux app image (packaged as .tar.gz)

Each artifact includes its own Java runtime.

The workflow runs:

  1. jdeps to detect required Java modules
  2. jlink to build a minimal runtime image
  3. jpackage --runtime-image to bundle that runtime into the final artifact

On tag builds, the workflow creates a GitHub Release and uploads all packaged artifacts automatically.

The main build workflow runs on pushes and pull requests to main.

It builds these modules in a matrix:

  • client
  • server
  • shared

Each job uses Java 21.

The formatting workflow checks the whole repository with Prettier.

Local formatting check
npx prettier --check .

Run it locally before opening a PR if you touch docs, scripts, or the website.

The docs site is built separately and published through GitHub Pages.

Java build checks
./gradlew :shared:compileJava :client:compileJava :server:compileJava
Full repository check
./gradlew build
./gradlew spotlessCheck