Currently
The release workflows support only final releases of a package, and no pre-releases. The branches support these release workflows by PR → staging branch → main branch, where a push to the main branch triggers building and publishing a final package release.
Proposal
We want to add support for building and publishing pre-releases of the package. To achieve that we can add the following workflows to the staging branch that trigger on push event:
- If the commit log shows a release will be build (i.e. there’s at least one
fix: or feat: or breaking change) then
- Build all release artifacts; then
- Bump the package’s version using commitizen’s
--prerelease option, e.g. using rc for release candidates, and push the new tag; then
- Create a pre-release on Github and attach the pre-release build artifacts.
We can probably refactor the current release.yaml into two workflows:
release-rc.yaml that triggers on push to the staging branch and produces a pre-release; and
release.yaml that (much like its current incarnation) triggers on push to the main branch and produces a final release,
both of which can make use of two new reusable workflows that
- Build and bump a branch; and
- Create a Github release and publish the artifacts.
For this to work, we also need the following two features available:
Currently
The release workflows support only final releases of a package, and no pre-releases. The branches support these release workflows by PR →
stagingbranch →mainbranch, where a push to themainbranch triggers building and publishing a final package release.Proposal
We want to add support for building and publishing pre-releases of the package. To achieve that we can add the following workflows to the
stagingbranch that trigger onpushevent:fix:orfeat:or breaking change) then--prereleaseoption, e.g. usingrcfor release candidates, and push the new tag; thenWe can probably refactor the current
release.yamlinto two workflows:release-rc.yamlthat triggers on push to thestagingbranch and produces a pre-release; andrelease.yamlthat (much like its current incarnation) triggers on push to themainbranch and produces a final release,both of which can make use of two new reusable workflows that
For this to work, we also need the following two features available: