Skip to content

Reusable GitHub Actions workflows for the listee-dev organization — Bun, Biome, and Changesets out of the box.

License

Notifications You must be signed in to change notification settings

listee-dev/listee-ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

listee-ci

actionlint License: MIT

Reusable GitHub Actions workflows for the listee-dev organization — Bun, Biome, Bun test, and Changesets out of the box.

Workflows

  • lint.yml: Run Biome (bun x biome ci .).
  • test.yml: Run Bun test.
  • typecheck.yml: Run TypeScript project references (fallback to --noEmit).
  • release.yml: Changesets release (opens PR or publishes to npm via npx and npm@latest).
  • pinact.yml: Validate that reusable workflows reference full-length commit SHAs.

Usage (in a consumer repository)

name: ci
on: [push, pull_request]
jobs:
  lint:      { uses: listee-dev/listee-ci/.github/workflows/lint.yml@v1 }
  test:      { uses: listee-dev/listee-ci/.github/workflows/test.yml@v1 }
  typecheck: { uses: listee-dev/listee-ci/.github/workflows/typecheck.yml@v1 }
  # Release via Changesets (requires npm token in caller repo)
  release:
    uses: listee-dev/listee-ci/.github/workflows/release.yml@v1
    with:
      environment: production

Notes

  • Runners: ubuntu-latest recommended. External actions are pinned to full-length commit SHAs via pinact to mitigate tag rewrite attacks.
  • npm releases use Trusted Publishing (OIDC). Configure npm to trust listee-dev/listee-libs’s ci.yml (or the relevant caller) and ensure each published package has matching repository metadata.
  • The release workflow installs npm@latest in a user prefix and runs Changesets through npx, so repositories must have @changesets/cli listed (e.g., via workspace dependencies).
  • The internal Bun setup is packaged as a composite action and referenced relatively for portability.

Local Development

  • Validate workflows with act (Apple Silicon often needs amd64):
    • act -j lint -W .github/workflows/lint.yml --container-architecture linux/amd64
    • act -j test -W .github/workflows/test.yml --container-architecture linux/amd64
    • act -j typecheck -W .github/workflows/typecheck.yml --container-architecture linux/amd64
    • act -j pinact -W .github/workflows/pinact.yml --container-architecture linux/amd64
  • Optional: copy actrc.example to your system config to avoid repeating flags.

Changesets Release Flow

  • In the consumer repo, add a changeset per meaningful change: bunx changeset (select bump type and packages).
  • Commit the generated file under .changeset/ and open a PR.
  • After merge to the default branch, the release.yml job creates a “Version Packages” PR.
  • Merge that PR to publish to npm. Configure npm Trusted Publishing for the repository/environment instead of providing NPM_TOKEN.
  • Local preview: bunx changeset status. Manual flows: bunx changeset version then bunx changeset publish.

Contributing

  • Conventional Commits are encouraged (e.g., feat(lint): strengthen Biome CI).
  • PRs should include purpose, key changes, impact, and local verification steps.
  • Static checks run on PRs via actionlint.

License

MIT License — see LICENSE.

About

Reusable GitHub Actions workflows for the listee-dev organization — Bun, Biome, and Changesets out of the box.

Resources

License

Stars

Watchers

Forks

Packages

No packages published