Shipseal

GitHub Action

A composite action. It sets up Node, runs the published CLI, and uploads the result.

Minimal workflow

name: Shipseal
on:
  release:
    types: [published]

permissions:
  contents: write

jobs:
  visuals:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: akii09/shipseal@v0.0.7
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Two things are not optional. fetch-depth: 0, or the release facts are incomplete. And contents: write, or the images cannot be attached to the release.

Inputs

InputDefaultMeaning
commandreleaserelease, milestone or bench
formatsfrom configComma separated list
upload-assetstrueAttach images to the GitHub release
artifacttrueAlso upload the folder as a workflow artifact
strictfalseFail the job on any fit warning
llmfalseEnable LLM copy, needs a secret
versionlatestShipseal version to run

Outputs

  • dir: the folder containing the generated pack.
  • skipped: true when a milestone run found no crossed threshold.

Pin the version

version defaults to latest, which is convenient but means a release can change under you. Pin an exact version for anything you care about being reproducible.

- uses: akii09/shipseal@v0.0.7
  with:
    version: "0.0.5"

Milestones on a schedule

Milestones are not tied to a release, so run them on a cron. The job exits cleanly and generates nothing when no threshold has been crossed.

on:
  schedule:
    - cron: "0 9 * * 1"

jobs:
  milestone:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: akii09/shipseal@v0.0.7
        with:
          command: milestone

Fail on bad layout

Set strict: true to turn any fit warning into a failed job, rather than shipping truncated text.