mirror of
https://seed.radicle.dev/rad:zwTxygwuz5LDGBq255RA2CbNGrz8.git
synced 2026-10-18 19:30:29 +08:00
doc(RELEASE.md): write down release process
This is what I've been doing. It may need optimization, but that's easier once the process is written down.
This commit is contained in:
+49
@@ -0,0 +1,49 @@
|
||||
# Release process for the Radicle CI broker
|
||||
|
||||
Lars follows this process to make a release of the CI broker.
|
||||
|
||||
1. Make sure all the changes needed for the release have been made.
|
||||
- check open issues for anything urgent
|
||||
- check open patches for anything that should be included
|
||||
- check Zulip discussions for anything not captured in issues
|
||||
1. Make sure the code in `main` can be deployed to `ci0` and CI runs
|
||||
successfully for all repositories.
|
||||
- `cibtool --db ci-broker.db trigger --all`
|
||||
1. Start a branch for the release.
|
||||
- `git switch -c release`
|
||||
1. Run `make`, ensure it's successful. This builds the code and runs
|
||||
the test suite.
|
||||
1. Update version number in `Cargo.toml`, run `make semver` to verify
|
||||
the new version number follows semantic versioning.
|
||||
1. Run `cargo update` to make sure `Cargo.lock` has the new crate version
|
||||
number.
|
||||
1. Update new version in `debian/changelog` as well.
|
||||
- `dch -v a.b.c-1 New version.`
|
||||
- `dch -r ''`
|
||||
1. Update `NEWS.md` basedon what's changed since the previous release.
|
||||
- `git log -p vA.B.C..`
|
||||
1. Run `rad ci` to make sure CI runs successfully.
|
||||
1. Commit changes.
|
||||
- `git commit -am "chore: prepare radicle-ci-broker release A.B.C."`
|
||||
1. Check if publishing would work.
|
||||
- `cargo publish --dry-run`
|
||||
1. Check `deb` building works. Throw away results.
|
||||
- `debian/build-deb`
|
||||
- `rm ../*_*`
|
||||
1. Push patch, wait for CI to succeed.
|
||||
- `git push rad HEAD:refs/patches`
|
||||
1. Merge patch, push merge.
|
||||
- `git switch main`
|
||||
- `git merge release`
|
||||
- `git push rad HEAD`
|
||||
1. Create release tag.
|
||||
- `git tag -sam "radicle-ci-broker release version A.B.C"` vA.B.C
|
||||
1. Publish crate.
|
||||
- `cargo publish`
|
||||
1. Build `deb`, import into the Radicle APT repository.
|
||||
- `debian/build-deb`
|
||||
1. Announce on Zulip in the `#annonce` channel in the topic for Radicle CI
|
||||
releases. Include `NEWS.md` snipppet for release, changing the top heading
|
||||
to mention "Radicle CI broker".
|
||||
1. Upgrade my CI nodes to new releasse.
|
||||
1. Update my other Radicle CI components if needed.
|
||||
Reference in New Issue
Block a user