To cut a new release of the containerd-shim-spin
, you will need to do the
following:
-
Confirm that CI is green for the commit selected to be tagged and released.
-
Change all references of the version number in package
- Cargo.toml,
- quickstart,
- README,
- deployments,
- images.
- CHANGELOG.md the Unreleased section should be updated with the new version number and the date of the release. Update the links to new version tag in the footer of CHANGELOG.md
Run
cargo build --release
to make sure lockfiles reflect Cargo.toml updates. Add a new column to the README shim and Spin version map that lists the version of the Spin dependencies for the release. -
Create a pull request with these changes and merge once approved.
-
Checkout the commit with the version bump from above.
-
Create and push a new tag with a
v
and then the version number.As an example, via the
git
CLI:# Create a GPG-signed and annotated tag git tag -s -m "Containerd Shim Spin v0.15.0" v0.15.0 # Push the tag to the remote corresponding to spinkube/containerd-shim-spin (here 'origin') git push origin v0.15.0
-
Pushing the tag upstream will trigger the release action.
- The release build will create binary releases of the shim and upload these assets to a new GitHub release for the pushed tag. Release notes are auto-generated but edit as needed especially around breaking changes or other notable items.
- The release action also creates test applications, a k3d node image with
the
containerd-shim-spin
, and a new node installer image to be used by the runtime class manager.
-
[Optional] Smoke test the release by running the following commands, replacing the version number with the new release:
k3d cluster create wasm-cluster \ --image ghcr.io/spinkube/containerd-shim-spin/k3d:v0.15.0 \ -p "8081:80@loadbalancer" \ --agents 2 kubectl apply -f https://github.com/spinkube/containerd-shim-spin/releases/download/v0.15.0/runtime.yaml kubectl apply -f https://github.com/spinkube/containerd-shim-spin/releases/download/v0.15.0/workload.yaml
This will create a k3d cluster with the new release and deploy a test workload to it.
- Update SpinKube documentation as necessary. Ensure the latest node installer image is used and update the Shim and Spin version map.