Merge pull request #8 from frontkom/develop #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Semantic Release | |
on: | |
push: | |
branches: | |
- release | |
- beta | |
paths: | |
- 'package/**' | |
permissions: | |
id-token: write # required to use OIDC authentication | |
contents: write # required to checkout the code from the repo and to perform release | |
packages: write # required to publish to packages | |
pull-requests: write | |
jobs: | |
check: | |
name: GitHub Prerequisites Check | |
runs-on: ubuntu-latest | |
outputs: | |
has_npm_secrets: ${{ steps.check-npm-key-secret.outputs.declared }} | |
steps: | |
- name: Check for NPM Secret availability | |
id: check-npm-key-secret | |
shell: bash | |
run: | | |
if [[ ! -z "${{ secrets.NPM_TOKEN }}" ]]; then | |
echo "All secrets are declared." | |
echo "declared=true" >> $GITHUB_OUTPUT; | |
else | |
echo "NPM_TOKEN secret is missing." | |
exit 1 | |
fi | |
check_version_number: | |
name: Check version | |
needs: [check] | |
runs-on: ubuntu-latest | |
if: | | |
needs.check.outputs.has_npm_secrets | |
&& github.actor != 'nektos/act' | |
permissions: | |
contents: write # to be able to publish a GitHub release | |
issues: write # to be able to comment on released issues | |
pull-requests: write # to be able to comment on released pull requests | |
outputs: | |
new_release_published: ${{ steps.semantic_dry.outputs.new_release_published }} | |
new_release_version: ${{ steps.semantic_dry.outputs.new_release_version }} | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Get semantic release version | |
uses: cycjimmy/semantic-release-action@v3 | |
id: semantic_dry | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
dry_run: true | |
branches: | | |
[ | |
"+([0-9])?(.{+([0-9]),x}).x", | |
"release", | |
{ | |
"name": "beta", | |
"prerelease": true | |
} | |
] | |
extends: | | |
[email protected] | |
extra_plugins: | | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
tag_version: | |
name: Add semantic release | |
needs: [check, check_version_number] | |
if: | | |
needs.check.outputs.has_npm_secrets | |
&& needs.check_version_number.outputs.new_release_published | |
&& github.actor != 'nektos/act' | |
permissions: | |
contents: write # to be able to publish a GitHub release | |
issues: write # to be able to comment on released issues | |
pull-requests: write # to be able to comment on released pull requests | |
runs-on: ubuntu-latest | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false # make sure the release step uses its own credentials | |
- name: Semantic Release | |
uses: cycjimmy/semantic-release-action@v3 | |
id: semantic | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
semantic_version: 19 | |
branches: | | |
[ | |
"+([0-9])?(.{+([0-9]),x}).x", | |
"release", | |
{ | |
"name": "beta", | |
"prerelease": true | |
} | |
] | |
extends: | | |
[email protected] | |
extra_plugins: | | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
@semantic-release/[email protected] | |
- name: Changelog version | |
if: steps.semantic.outputs.new_release_published == 'true' | |
run: | | |
echo ${{ steps.semantic.outputs.new_release_version }} | |
outputs: | |
new_release: ${{ steps.semantic.outputs.new_release_published }} | |
new_version: ${{ steps.semantic.outputs.new_release_version }} |