Our custom template repository for GitHub Actions implemented in TypeScript.
See creating a repository from a template. If you are working within Freckle, use github-vending-machine instead.
Warning
Be sure to look for strings like "TODO" or "Action name" and update them accordingly.
- uses: freckle/TODO-action@v1| name | description | required | default |
|---|---|---|---|
github-token |
Override GitHub token, if necessary |
true |
${{ github.token }} |
This action requires the following permissions:
permissions: {}As the action uses the GitHub API, these should be updated to reflect the
minimal permissions required. These permissions may need to be manually set in
certain scenarios, such as workflows triggered by Dependabot PRs, which use a
read-only GITHUB_TOKEN.
- Package manager: pnpm (Node version pinned in
.nvmrc) pnpm build—tscthenncc, bundles todist/index.jspnpm test— Vitestpnpm coverage— Vitest with coverage, gated at 70% (main.tsexcluded: thin wiring, covered by theintegrationCI job instead)pnpm typecheck—tsc --noEmit, includes test filespnpm lint— ESLintpnpm format/pnpm format-check— Prettierpnpm knip— unused files/dependencies/exports- CI runs all of the above on every PR, then runs the built action end to end in the
integrationjob
Versioned tags will exist, such as v1.0.0 and v2.1.1. Tags will also exist
for each major version, such as v1 or v2 and point to the newest version in
that series.
To trigger a release (and update the @v{major} tag), merge a commit to main
that follows Conventional Commits. In short,
fix:to trigger a patch release,feat:to trigger minor, or<type>!:or add aBREAKING CHANGE:trailer to trigger major
We don't enforce conventional commits generally (though you are free do so), it's only required if you want to trigger release.