The official GitHub Action for Frontseat.
Installs the Frontseat CLI plus declared plugins, restores the REAPI build cache
between runs, and drives any lifecycle command (build, ship, lint, test,
conform, …) on the workspace.
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: frontseat-dev/frontseat-action@v1
with:
mode: buildThat single step replaces a manual curl mise.run | sh + tool install + REAPI
cache restoration block — frontseat build // runs in the same job, and a
hashed cache of .frontseat/cache/ survives across runs.
- uses: frontseat-dev/frontseat-action@v1
with:
mode: ship
args: --prerelease alpha
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}mode: ship runs the full Frontseat ship lifecycle (assemble → changelog → catalog → sign → deploy → upload → release → prepare → publish → announce).
GitHub release creation needs GITHUB_TOKEN exposed to the step.
| Name | Default | Description |
|---|---|---|
mode |
build |
Lifecycle command to run (build, ship, lint, test, package, verify, conform, sync). Empty string installs Frontseat and exits. |
entities |
// |
Entity selector passed to the command. |
version |
latest |
Frontseat CLI version. Resolved against the frontseat releases via the frontseat-mise plugin. |
plugins |
"" |
Comma-separated plugin names (e.g. go,maven,docker). When empty, the action defers to whatever the workspace's mise.toml declares. |
args |
"" |
Extra arguments appended to the Frontseat command. |
exec-mode |
local |
Passed as --exec-mode. |
cache-mode |
offline |
Passed as --cache-mode. |
cache |
"true" |
Enable REAPI local-cache persistence via actions/cache. |
working-directory |
. |
Directory containing frontseat.yaml. |
mise-version |
"" |
Override the mise CLI version (passed to jdx/mise-action's version input). |
- Configures
frontseat-miseif your workspace doesn't already declare it. Drops a smallmise.tomloverlay into.mise/so this action works in workspaces that haven't pinned Frontseat themselves. - Installs mise and all declared tools via
jdx/mise-actionwith caching enabled. This downloads the Frontseat CLI, every plugin tarball for the runner's OS/arch, and the language toolchains declared in your workspace'smise.toml. On a warm cache this is seconds. - Restores the REAPI cache from
actions/cachekeyed on the hash of your workspace manifests (go.sum,go.work.sum,pom.xml,package-lock.json,Cargo.lock). Subsequent runs that don't change dependencies skip already-completed actions. - Runs the Frontseat command with the configured
--exec-modeand--cache-mode.
You can — and for a quick experiment that's the right answer. The action exists to encapsulate three things that are tedious to get right by hand:
- Auth wiring for
gh(used byfrontseat-misefor version discovery) and the GitHub release step inmode: ship. - REAPI cache persistence between ephemeral runner instances. Without it,
every
frontseat buildrebuilds everything from scratch. - Plugin installation through
frontseat-mise'spluginsoption, which needs a token configured correctly to talk to the GitHub API.
Apache 2.0. See LICENSE.