This document describes the process for releasing a new version of the builtin-actors
project.
- Create a pull request which updates the
workspace.package.version
in the top-levelCargo.toml
file.- Title the PR
chore: release X.Y.Z
- Title the PR
- On pull request creation, a Release Checker workflow will run. It will perform the following actions:
- Extract the version from the top-level
Cargo.toml
file. - Check if a git tag for the version already exists. Continue only if it does not.
- Create a draft GitHub release with the version as the tag. (A git tag with this version string will be created when the release is published.)
- Comment on the pull request with a link to the draft release.
- Build
builtin-actors.car
s for various networks. - Generate checksums for the built
builtin-actors.car
s. - Upload the built
builtin-actors.car
s and checksums as assets to the draft release (replace any existing assets with the same name).
- Extract the version from the top-level
- On pull request merge, a Releaser workflow will run. It will perform the following actions:
- Extract the version from the top-level
Cargo.toml
file. - Check if a git tag for the version already exists. Continue only if it does not.
- Check if a draft GitHub release with the version as the tag exists.
- If the draft release exists, publish it. Otherwise, create and publish a new release with the version as the git tag. Publishing the release creates the git tag.
- Extract the version from the top-level
- If one pushes an update to the
workspace.package.version
in the top-levelCargo.toml
file without creating a pull request, the Release Checker workflow will not run. Hence, the release assets will not be automatically built and uploaded.
- Add a check to the Releaser workflow to ensure that the created/published release contains the expected assets. If it does not, create them and run the upload-release-assets.sh script to upload the missing assets.