|
| 1 | +# Cutting a new release of the Containerd Shim Spin |
| 2 | + |
| 3 | +To cut a new release of the `containerd-shim-spin`, you will need to do the |
| 4 | +following: |
| 5 | + |
| 6 | +1. Confirm that [CI is |
| 7 | + green](https://github.com/spinkube/containerd-shim-spin/actions) for the |
| 8 | + commit selected to be tagged and released. |
| 9 | + |
| 10 | +1. Change all references of the version number in package |
| 11 | + [Cargo.toml](./Cargo.toml), crate |
| 12 | + [Cargo.toml](./containerd-shim-spin/Cargo.toml), |
| 13 | + [quickstart](./containerd-shim-spin/quickstart.md), [README](./README.md), |
| 14 | + [deployments](./deployments/), and [images](./images/). Run `cargo build |
| 15 | + --release` to make sure lockfiles reflect Cargo.toml updates. Add a new |
| 16 | + column to the [README shim and Spin version |
| 17 | + map](./README.md#shim-and-spin-version-map) that lists the version of the |
| 18 | + Spin dependencies for the release. |
| 19 | + |
| 20 | +1. Create a pull request with these changes and merge once approved. |
| 21 | + |
| 22 | +1. Checkout the commit with the version bump from above. |
| 23 | + |
| 24 | +1. Create and push a new tag with a `v` and then the version number. |
| 25 | + |
| 26 | + As an example, via the `git` CLI: |
| 27 | + |
| 28 | + ``` |
| 29 | + # Create a GPG-signed and annotated tag |
| 30 | + git tag -s -m "Containerd Shim Spin v0.15.0" v0.15.0 |
| 31 | +
|
| 32 | + # Push the tag to the remote corresponding to spinkube/containerd-shim-spin (here 'origin') |
| 33 | + git push origin v0.15.0 |
| 34 | + ``` |
| 35 | +
|
| 36 | +1. Pushing the tag upstream will trigger the [release |
| 37 | + action](https://github.com/spinkube/containerd-shim-spin/actions/workflows/release.yaml). |
| 38 | + - The release build will create binary releases of the shim and upload these |
| 39 | + assets to a new GitHub release for the pushed tag. Release notes are |
| 40 | + auto-generated but edit as needed especially around breaking changes or |
| 41 | + other notable items. |
| 42 | + - The release action also creates test applications, a k3d node image with |
| 43 | + the `containerd-shim-spin`, and a new node installer image to be used by |
| 44 | + the runtime class manager. |
| 45 | + |
| 46 | +1. Update [SpinKube documentation](https://github.com/spinkube/documentation) as |
| 47 | + necessary. Ensure the latest [node installer |
| 48 | + image](https://www.spinkube.dev/docs/spin-operator/installation/installing-with-helm/#prepare-the-cluster) |
| 49 | + is used and update the [Shim and Spin version |
| 50 | + map](https://www.spinkube.dev/docs/containerd-shim-spin/). |
0 commit comments