feat: automate releases with release-please#6009
Open
kriscoleman wants to merge 2 commits into
Open
Conversation
Replace the manual tag-and-release.sh workflow with release-please: - Add release-please GitHub Action workflow - Add release-please manifest and config files - Add version.txt for simple release type - Update verify-tag.sh to accept semver tags from release-please - Remove github-release job from deploy-prod.yaml (release-please handles this) - Add upload-sbom job to attach SBOMs to release-please releases - Update Makefile to read VERSION_TAG from version.txt - Deprecate bin/tag-and-release.sh in favor of automated releases
…OKEN Follow the ekco pattern by making deploy-prod.yaml a reusable workflow that release-please.yaml calls conditionally when a release is created. This eliminates the need for a Personal Access Token since everything stays within a single workflow run using GITHUB_TOKEN. Changes: - release-please.yaml now outputs release_created and tag_name - Added deploy job that calls deploy-prod.yaml via workflow_call - deploy-prod.yaml now supports workflow_call with a 'tag' input - All checkout steps in deploy-prod.yaml now checkout the correct ref - Replaced all GITHUB_REF_NAME references with workflow-level VERSION_TAG env
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: automate releases with release-please
Summary
This PR replaces the manual
bin/tag-and-release.shworkflow with automated releases powered by release-please. When conventional commits are merged tomain, release-please will automatically open a release PR. Merging that PR creates a version tag and GitHub release, which then triggers the existing production deployment pipeline — all within a single workflow run usingGITHUB_TOKEN(no PAT required).Changes
.github/workflows/release-please.yaml— GitHub Action that runs release-please on every push tomain, then conditionally calls the deploy workflow when a release is createdrelease-please-config.json— configures thesimplerelease type for the root package.release-please-manifest.json— tracks the current released versionversion.txt— version file managed by release-please (required by thesimplerelease type)bin/verify-tag.sh— now accepts both semver tags (from release-please) and legacy calver tags.github/workflows/deploy-prod.yaml— converted to a reusable workflow (workflow_call) so it can be called from release-please; addedrefto all checkout steps; replacedGITHUB_REF_NAMEusages with a workflow-levelVERSION_TAGenv var; removed thegithub-releasejob (release-please handles changelog and release creation), addedupload-sbomjob to attach SBOMs to release-please-generated releasesMakefile—VERSION_TAGnow reads fromversion.txtso local builds stay in syncbin/tag-and-release.sh— added deprecation notice directing users to the new automated workflowHow it works
feat:,fix:,chore:, etc.) is merged tomainrelease-please.yamlruns and opens a release PR with an updated changelog and version bumpdeploy-prod.yamlwith the new tag, triggering the full production deploymentUAT
main(e.g.,feat: ...orfix: ...)