GitHub Action that publishes a new release.
Step1: Set any Semantic Release Configuration in your repository.
Step2: Add Secrets in your repository for the Semantic Release Authentication Environment Variables.
Step3: Add a Workflow File to your repository to create custom automated processes.
steps:
- name: Release
uses: open-turo/actions-node/release@v3
with:
## example value for github-token provided below
github-token: ${{ secrets.GITHUB_TOKEN }}
## example value for npm-auth-token provided below
npm-auth-token: ${{ secrets.NPM_AUTH_TOKEN }}
You can specify an S3 bucket to cache node_modules in order to speed up dependency installation, in which case you will need to configure AWS credentials like so:
jobs:
build:
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- uses: open-turo/actions-node/release@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
s3-bucket-name: <bucket-name>
s3-bucket-region: <bucket-region>
IMPORTANT: GITHUB_TOKEN
does not have the required permissions to operate on protected branches.
If you are using this action for protected branches, replace GITHUB_TOKEN
with Personal Access Token. If using the @semantic-release/git
plugin for protected branches, avoid persisting credentials as part of actions/checkout@v3
by setting the parameter persist-credentials: false
. This credential does not have the required permission to operate on protected branches.
name | description | required | default |
---|---|---|---|
checkout-repo |
Perform checkout as first step of action |
false |
true |
checkout-fetch-depth |
The number of commits to fetch. 0 indicates all history for all branches and tags |
false |
0 |
github-token |
GitHub token that can checkout the repository as well as create tags/releases against it. e.g. 'secrets.GITHUB_TOKEN' |
true |
${{ github.token }} |
docker-config-file |
Path to the docker config file (defaults to .docker-config.json) Must contain imageName, may contain dockerfile. |
false |
.docker-config.json |
docker-flavor |
Docker flavor to use for docker metadata |
false |
latest=false |
dockerhub-user |
username for dockerhub |
false |
"" |
dockerhub-password |
password for dockerhub |
false |
"" |
npm-auth-token |
The Node Package Manager (npm) authentication token. This token is used to authenticate against a private NPM registry configured via a .npmrc file. |
false |
"" |
npm-token |
The Node Package Manager (npm) authentication token. This token is used to authenticate against the NPM registry. |
false |
"" |
dry-run |
Whether to run semantic release in |
false |
false |
extra-plugins |
Extra plugins for pre-install. You can also specify specifying version range for the extra plugins if you prefer. Defaults to install @open-turo/semantic-release-config. |
false |
@open-turo/semantic-release-config |
s3-bucket-name |
S3 bucket name to cache node_modules to speed up dependency installation. |
false |
"" |
s3-bucket-region |
S3 bucket region to cache node_modules to speed up dependency installation. |
false |
"" |
name | description |
---|---|
new-release-published |
Whether a new release was published |
new-release-version |
Version of the new release |
new-release-major-version |
Major version of the new release |
This action is a composite
action.
The Action can be used with extra-plugins
option to specify plugins which are not in the default list of plugins of semantic release. When using this option, please make sure that these plugins are also mentioned in your semantic release config's plugins array.
For example, if you want to use @semantic-release/git
and @semantic-release/changelog
extra plugins, these must be added to extra-plugins
in your actions file and plugins
in your release config file as shown bellow:
Github Action Workflow:
steps:
- name: Release
uses: open-turo/actions-node/release@v1
with:
# You can specify specifying version range for the extra plugins if you prefer.
github-token: ${{ secrets.GITHUB_TOKEN }}
extra-plugins: |
@semantic-release/[email protected]
@semantic-release/git
Similar to parameter semantic_version
. It is recommended to manually specify a version of semantic-release plugins to prevent errors caused.
Release Config:
plugins: [
.
+ "@semantic-release/changelog"
+ "@semantic-release/git",
]
jobs:
build:
steps:
- name: Release
uses: open-turo/actions-node/release@v1
with:
dry-run: true
github-token: ${{ secrets.GITHUB_TOKEN }}
jobs:
build:
steps:
- name: Release
uses: open-turo/actions-node/release@v1
id: semantic # Need an `id` for output variables
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Do something when a new release published
if: steps.semantic.outputs.new-release-published == 'true'
run: |
echo ${{ steps.semantic.outputs.new-release-version }}
echo ${{ steps.semantic.outputs.new-release-major-version }}
- By default, this action will perform actions/checkout as its first step.