Shared composite GitHub Actions for the fleet — public, not Marketplace-listed, referenced
directly from any repo in any org via uses: Rethunk-Tech/gh-actions/<action>@<ref>. Built to
replace copy-pasted Bun/Next.js/Go toolchain-setup and dependency-caching boilerplate that was
drifting independently per repo across the fleet.
- uses: actions/checkout@v7
- uses: Rethunk-Tech/gh-actions/setup-bun@v1.5
with:
working-directory: frontendFull inputs/outputs, pinning practice, and the setup-nextjs-bun variant: HUMANS.md.
- Cross-org by design — one
uses:line works from any repo in any GitHub org, no shared workflow-permission config required. setup-bunresolves the Bun version from the consuming repo's ownpackage.jsonpackageManagerfield by default — no version to keep in sync by hand.setup-nextjs-bunadds a.next/cachebuild cache keyed exactly per Next.js's own documented CI caching guide (lockfile hash + source-file hash, independently invalidated).setup-gowrapsactions/setup-go's own module/build cache — no hand-rolled cache key to keep in sync with upstream's.setup-goalso bundles opt-in golangci-lint/govulncheck gates, eachcontinue-on-errorbehind a final gate step — enabling both still surfaces both findings even if one fails.install-playwright(setup-bun/setup-nextjs-bun) caches browsers by the resolved@playwright/testversion, matching Playwright's own documented CI caching guide.- Every wrapped dependency is SHA-pinned with a version comment; the repo-ops actions-refresh-sha sweep keeps pins current fleet-wide.
- Actually tested, not just schema-checked: each action runs end-to-end via
actbefore a commit, and CI self-tests a real cold-cache-miss → warm-cache-hit round trip on every push.
| Doc | For |
|---|---|
| HUMANS.md | Using an action from another repo — inputs, outputs, pinning |
| AGENTS.md | Internals — conventions, testing, why setup-nextjs-bun doesn't compose setup-bun |
| CONTRIBUTING.md | Commit style, testing before a PR, adding a new action |
| SECURITY.md | Vulnerability reporting and trust boundary |