You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
release-it Action
v0.2.1
Runs release-it as a GitHub Action, with handling for semantic releases and protected branches. π€
This action works by:
- Checking
should-semantic-release
for whether a new release is necessary, and bailing if not - Fetching any existing branch protections for the configured branch, and temporarily deleting them if found
- Running
release-it
- Restoring any temporarily deleted branch protections
Run JoshuaKGoldberg/release-it-action
in a GitHub workflow after building your code and setting your npm token:
concurrency:
group: ${{ github.workflow }}
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- run: npm build
- env:
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
uses: JoshuaKGoldberg/[email protected]
name: Release
on:
push:
branches:
- main
permissions:
contents: write
id-token: write
Key | Type | Default | Description |
---|---|---|---|
branch |
string |
"main" |
Branch to delete and recreate branch protections on (unless skip-branch-protections ). |
git-user-email |
string |
${<git-user-name>}@users.noreply.github.com |
git config user.email value for Git commits. |
git-user-name |
string |
${github.context.actor} |
git config user.name value for Git commits. |
github-token |
string |
${GITHUB_TOKEN} |
GitHub token (PAT) with repo and workflow permissions. |
npm-token |
string |
${NPM_TOKEN} |
npm access token with the automation role. |
skip-branch-protections |
boolean |
false |
Whether to skip deleting and recreating branch protections. |
release-it-action
can be installed as a dependency that exports a releaseItAction
function:
npm i release-it-action
import { releaseItAction } from "release-it-action";
await releaseItAction({
branch: "main",
gitUserEmail: "[email protected]",
gitUserName: "YourUsername",
githubToken: process.env.GITHUB_TOKEN,
npmToken: process.env.NPM_TOKEN,
owner: "YourUsername",
repo: "your-repository",
});
Note that branch
, owner
, repo
, and token
are required and do not have default values in the Node API.
release-it-action
needs to run on the latest commit on the default/release branch and with a concurrency group.
Otherwise, if multiple workflows are triggered quickly, later workflows might not include release commits from earlier workflows.
Josh Goldberg β¨ π» π π π€ π π§ π π§ |
π This package is based on @JoshuaKGoldberg's create-typescript-app.