ci: adds release workflow for automated draft releases #54
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.
What 💻
release.yaml
to the CICross.toml
file forrelease.yaml
workflowWhy ✋
v0.0.1-alpha
) it will trigger the test, checks, and release workflowsmake rust-<target>
command added to makefile for ci convenience and readabilityEvidence 📷
The release will be presented as such 👇 :
Notes 📝
Specifics on the release workflow 👇
Overview:
release.yaml
This PR introduces a new release pipeline aimed at automating the creation of GitHub releases, ensuring consistency and efficiency in our delivery process. The workflow is inspired by practices from reth and Lighthouse.
Release Workflow
First Run
On the first execution of this workflow, the "All Changes" section of the release draft will be empty. This behaviour occurs because the action fetches commits between tags. Since there will be no prior tag for the first run, it does not populate this section. However, for subsequent runs, this section will feature all commits up to the given tag. The first run we will have to do so manually by running
git log main --oneline
and adding the commits.Draft Release
The workflow creates a draft release instead of a public one. This approach is intentional. It allows us to:
Once the draft is reviewed and any required changes are made, we can finalize and create the release accordingly.
Note: The binaries links in the table will not resolve until the release is made. That is, when a release is in "draft" form on GitHub, it is given an untagged-... URL. So when the release is made it will be tagged with the corresponding tag.
Triggering the Release Pipeline
To trigger the release pipeline, you'll need to create and push a Git tag. Here are the commands:
Replace
[VERSION_NUMBER]
with the desired version number. This will trigger thecheck.yaml
andtest.yaml
workflows, andrelease.yaml
.