You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our release automation workflow (.github/workflows/release.yml) currently relies on standard-version for changelog generation and version bumping. While this approach works, it requires manual triggering of releases and doesn't fully automate the process based on commit standards.
After reviewing options, we've identified that Google's release-please library would be a better fit than Commitizen for our needs, especially since standard-versionrecommends release-please as a more automated approach.
Current Approach
Our current workflow:
Requires manual triggering via workflow_dispatch
Uses standard-version to determine version bump based on commits
Extract changelog content and push changes/tags
Builds and publishes to npm
Creates a GitHub release
Proposed Changes
We propose migrating to the release-please pattern which:
Add release-please workflow: Create a new workflow file that handles version bumping and release PR creation
Update dependencies: Add required dependencies for release-please
Modify existing workflow: Adapt existing release workflow to be triggered by release-please releases
Example release-please.yml workflow
name: Release Pleaseon:
push:
branches:
- mainpermissions:
contents: writepull-requests: writejobs:
release-please:
runs-on: ubuntu-lateststeps:
- uses: googleapis/release-please-action@v4id: releasewith:
# Using Node.js release type as we have a package.jsonrelease-type: node# This is a personal access token for creating GitHub releasestoken: ${{ secrets.RELEASE_PAT }}# The following steps only run if a new release is created
- name: Checkout codeif: ${{ steps.release.outputs.release_created }}uses: actions/checkout@v3with:
ref: ${{ steps.release.outputs.tag_name }}
- name: Setup Node.jsif: ${{ steps.release.outputs.release_created }}uses: actions/setup-node@v3with:
node-version: 'lts/*'registry-url: 'https://registry.npmjs.org/'
- name: Install Dependenciesif: ${{ steps.release.outputs.release_created }}run: npm ci
- name: Build packageif: ${{ steps.release.outputs.release_created }}run: npm run build
- name: Publish to npmif: ${{ steps.release.outputs.release_created }}run: npm publish --access publicenv:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Benefits
Automation: Eliminates manual release triggering - releases happen automatically based on commit history
Standardization: Enforces using Conventional Commits which improves git history and changelog quality
Clarity: Provides clear visibility of pending changes through Release PRs
Reduced Manual Work: Automates version bumping and changelog generation
Next Steps
Review and approve this approach
Implement the release-please.yml workflow
Test with a minor/patch release
Update documentation to reflect new release process
Tiberriver256
changed the title
Migrate release automation to use Commitizen for version management
Migrate release automation to use Release Please for version management
Apr 2, 2025
Background
Our release automation workflow (
.github/workflows/release.yml
) currently relies onstandard-version
for changelog generation and version bumping. While this approach works, it requires manual triggering of releases and doesn't fully automate the process based on commit standards.After reviewing options, we've identified that Google's
release-please
library would be a better fit than Commitizen for our needs, especially sincestandard-version
recommends release-please as a more automated approach.Current Approach
Our current workflow:
workflow_dispatch
standard-version
to determine version bump based on commitsProposed Changes
We propose migrating to the
release-please
pattern which:Implementation Plan
Example release-please.yml workflow
Benefits
Next Steps
release-please.yml
workflowReferences
The text was updated successfully, but these errors were encountered: