A collection of reusable workflows for GitHub Actions.
The five install-capable workflows (test.yml, deploy.yml, release.yml, run-script.yml, autofix.yml) declare these optional secrets:
VERDACCIO_TOKEN: auth token for the private Verdaccio registry (@willbooster-private/*). When set, the workflow generates a git-excluded workspace.npmrcbefore installing dependencies. Every caller should pass it. The generated.npmrcstays on disk for the whole job, but the secret itself is step-scoped:${VERDACCIO_TOKEN}only expands in the "Install dependencies" step of all five workflows, pluscommon/ci-setupand "Deploy" indeploy.yml,common/ci-setupand "Run script" inrun-script.yml, "Release" inrelease.yml, and "Test release script" intest.yml. Consumer scripts running on any other step (e.g.test/ci-setup,cleanup,build, tests) see an emptyVERDACCIO_TOKENand must rely on the already-installed dependency graph instead of fetching from the private registry at run time.FNOX_AGE_KEY: age secret key that decrypts the age-encrypted secrets committed in the caller'sfnox.toml. Required for repositories whosefnox.tomlcontains age-encrypted secrets; after mise installs fnox,deploy.yml,release.yml, andrun-script.ymlfail fast when the committed secrets cannot be resolved (missing or wrong key), whiletest.ymlandautofix.ymlonly warn (fork pull requests runtest.ymlwithout secrets, and autofix's cleanup/build steps do not need app secrets). Afnox.tomlwith only plaintext defaults needs no key, but a non-development job must still declare the selected profile (an inline[profiles.<name>]or afnox.<name>.tomlfile) — an undeclared profile silently falls back to the base (development) secrets, so the check rejects it.
Do NOT pass either secret explicitly to the other workflows (e.g. semantic-pr.yml, close-comment.yml): GitHub rejects a secrets: map entry the callee does not declare (secrets: inherit is exempt from this validation). Running wbfy (>= 3.0.0) on the caller repository injects both automatically.
Note: this repository is mirrored to WillBoosterLab/reusable-workflows with one-way-git-sync via the sync script, which maintainers run from their machines (bun run sync; renovate.json and node_modules are excluded). The mirror is not synced automatically on merge, so it can lag main — run bun run sync after merging changes that WillBoosterLab callers need.