This document describes the process for releasing a new version of the filecoin-ffi
project.
- Create a pull request which updates the
version
in the top-levelversion.json
file.- Title the PR
chore: X.Y.Z release
- 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
version.json
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 the project for Linux (X64), Linux (ARM64), and MacOS.
- Upload the built 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
version.json
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
version
in the top-levelversion.json
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 publish-release.sh script to upload the missing assets.