Release new version #82
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: Release new version | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
type: choice | |
description: Version | |
options: | |
- patch | |
- minor | |
- major | |
- prerelease | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: write | |
actions: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Needed to make possible changelog generation only from latest tag | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: 9 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: pnpm | |
- name: Install Dev Dependencies | |
run: pnpm install -D | |
- name: Bump package.json version | |
id: version | |
run: | | |
echo "OLD_VERSION=$(pnpm pkg get version | tr -d '"')" >> "$GITHUB_OUTPUT" | |
pnpm version ${{ github.event.inputs.version }} --preid rc --git-tag-version=false | |
echo "NEW_VERSION=$(pnpm pkg get version | tr -d '"')" >> "$GITHUB_OUTPUT" | |
- name: Generate changelog | |
run: pnpm changelog:generate -t v${{ steps.version.outputs.OLD_VERSION }} || pnpm changelog:generate | |
- name: Create github release | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git config --global user.email [email protected] | |
git config --global user.name "CI/CD Bot" | |
git add package.json | |
git commit -m "version v${{ steps.version.outputs.NEW_VERSION }}" | |
git tag v${{ steps.version.outputs.NEW_VERSION }} | |
git push | |
git push --tags | |
gh release create v${{ steps.version.outputs.NEW_VERSION }} --notes-file CHANGELOG.md | |
- name: Trigger publish | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: gh workflow run publish.yml -r v${{ steps.version.outputs.NEW_VERSION }} |