GitHub Action to publish 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: Action semantic release
uses: open-turo/actions-jvm/release@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
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@v4
by setting the parameter persist-credentials: false
. This credential does not have the required permission to operate on protected branches.
parameter | 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 consumer repository as well as create tags/releases against it. e.g. 'secrets.GITHUB_TOKEN' | true |
|
dry-run | Whether to run semantic release in dry-run mode. It will override the dryRun attribute in your configuration file |
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 |
parameter | 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.
jobs:
build:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Release
uses: open-turo/actions-jvm/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.