Create release PR #6
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: Create release PR | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: "The new version number following semantic versioning convention. Example: 1.40.1" | |
required: true | |
jobs: | |
init_release: | |
name: 🚀 Create release PR | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # gives the changelog generator access to all previous commits | |
- name: Update CHANGELOG.md and version.go, then push release branch | |
env: | |
VERSION: ${{ github.event.inputs.version }} | |
run: | | |
# Generate the changelog without creating a tag or commit | |
npx --yes [email protected] --release-as "$VERSION" --skip.tag --skip.commit --tag-prefix=v | |
# Update version in version.go | |
sed -i "s/versionName = \".*\"/versionName = \"$VERSION\"/" version.go | |
# Stage the new or updated files | |
git add CHANGELOG.md version.go | |
# Set up Git configuration | |
git config --global user.name 'github-actions' | |
git config --global user.email '[email protected]' | |
# Create a release branch with the version and push it | |
git checkout -q -b "release-$VERSION" | |
git commit -am "chore(release): $VERSION" | |
git push -q -u origin "release-$VERSION" | |
- name: Open pull request | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh pr create \ | |
-t "Release ${{ github.event.inputs.version }}" \ | |
-b "# :rocket: ${{ github.event.inputs.version }} | |
Make sure to use squash & merge when merging! | |
Once this is merged, another job will kick off automatically and publish the package. | |
# :memo: Changelog | |
$(cat CHANGELOG.md)" | |