CI & Formatting
Flaggi uses GitHub Actions for build checks, formatting checks, website deployment and releases.
Release workflow
Section titled “Release workflow”Releases are built in CI with a multi-OS matrix in .github/workflows/release.yml.
Trigger
Section titled “Trigger”- Automatic on Git tags matching
v*(example:v1.2.0) - Manual via
workflow_dispatch
What it builds
Section titled “What it builds”- Windows installer (
.exe) - macOS installer (
.dmg) - Linux app image (packaged as
.tar.gz)
Runtime bundling
Section titled “Runtime bundling”Each artifact includes its own Java runtime.
The workflow runs:
jdepsto detect required Java modulesjlinkto build a minimal runtime imagejpackage --runtime-imageto bundle that runtime into the final artifact
Publishing
Section titled “Publishing”On tag builds, the workflow creates a GitHub Release and uploads all packaged artifacts automatically.
Build workflow
Section titled “Build workflow”The main build workflow runs on pushes and pull requests to main.
It builds these modules in a matrix:
clientservershared
Each job uses Java 21.
Formatting workflow
Section titled “Formatting workflow”The formatting workflow checks the whole repository with Prettier.
npx prettier --check .Run it locally before opening a PR if you touch docs, scripts, or the website.
Website deployment
Section titled “Website deployment”The docs site is built separately and published through GitHub Pages.
Local equivalents
Section titled “Local equivalents”./gradlew :shared:compileJava :client:compileJava :server:compileJava./gradlew build./gradlew spotlessCheck