mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-08 05:00:44 +08:00
Improve release process
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
/build/
|
||||
/target/
|
||||
/release-artifacts
|
||||
node_modules/
|
||||
|
||||
# Tauri
|
||||
|
||||
@@ -68,7 +68,6 @@ steps:
|
||||
# Update latest build artifacts for upload
|
||||
cp target/release/bundle/deb/*.deb "$LATEST_DIR/deb"
|
||||
cp target/release/bundle/appimage/*.AppImage "$LATEST_DIR/appimage"
|
||||
echo "{\"sha\": \"$(git rev-parse HEAD)\", \"version\": \"$VERSION\"}" > "$LATEST_DIR/latest.json"
|
||||
|
||||
upload-artifacts:
|
||||
image: woodpeckerci/plugin-s3
|
||||
@@ -82,19 +81,3 @@ steps:
|
||||
from_secret: minio_access_key
|
||||
secret_key:
|
||||
from_secret: minio_secret_key
|
||||
|
||||
release:
|
||||
image: woodpeckerci/plugin-s3
|
||||
when:
|
||||
- evaluate: 'CI_PIPELINE_EVENT == "push" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH && CI_COMMIT_MESSAGE startsWith "Release"'
|
||||
settings:
|
||||
endpoint: https://minio-api.radworks.garden
|
||||
bucket: radworks-releases
|
||||
source: radicle-desktop/latest/*/*.{deb,json,AppImage}
|
||||
target: ""
|
||||
overwrite: true
|
||||
path_style: true
|
||||
access_key:
|
||||
from_secret: minio_access_key
|
||||
secret_key:
|
||||
from_secret: minio_secret_key
|
||||
|
||||
+89
-13
@@ -1,15 +1,77 @@
|
||||
### Release Checklist
|
||||
# Release process
|
||||
|
||||
**Note:** We release every second Thursday, before the end of the cycle.
|
||||
|
||||
- Bump the minor version in `crates/radicle-tauri/tauri.conf.json`.
|
||||
- In your working shell set the following variable
|
||||
|
||||
```bash
|
||||
VERSION="X.Y.Z"
|
||||
```
|
||||
|
||||
- Create a new release branch
|
||||
|
||||
```bash
|
||||
rad sync && git fetch
|
||||
git checkout -b release/v${VERSION} rad/main`
|
||||
```
|
||||
|
||||
- Update the version in `crates/radicle-tauri/tauri.conf.json`.
|
||||
- Update `CHANGELOG.md` — only include changes relevant to users.
|
||||
- Create a version bump patch, push to CI, and request a review.
|
||||
- The commit message should start with `Release` followed by `v<version_number>`.
|
||||
- Wait for CI to pass and get peer approval.
|
||||
- Build the macOS app locally: `npm run tauri build`.
|
||||
- Make sure to clean any transient dependencies with `cargo clean && rm -rf node_modules` before building.
|
||||
- Upload the macOS build to [MinIO][0] in the same folder as the latest Linux build.
|
||||
- Commit the changes `git commit -m "Release v${VERSION}"`. This commit is the
|
||||
_Release Commit_.
|
||||
- In your working shell, set the release commit SHA
|
||||
|
||||
```bash
|
||||
RELEASE_SHA="$(git rev-parse HEAD)"
|
||||
SHORT_RELEASE_SHA="$(git rev-parse --short HEAD)"
|
||||
```
|
||||
|
||||
- Create a _Release Patch_ with `git push rad HEAD:refs/patches`
|
||||
- Build the macOS app locally
|
||||
|
||||
```bash
|
||||
cargo clean
|
||||
rm -rf node_modules
|
||||
npm install
|
||||
npm exec -- tauri build --bundle dmg
|
||||
```
|
||||
|
||||
This creates a file `target/release/bundle/dmg/Radicle_X.Y.Z_aarch64.dmg`.
|
||||
|
||||
- Install the build macOS DMG and start the app to verify that it works.
|
||||
- Wait for CI of the Release Commit in the Release Patch to pass
|
||||
|
||||
- Collect release artifacts
|
||||
|
||||
```bash
|
||||
rm -rf release-artifacts && mkdir release-artifacts
|
||||
curl -fL \
|
||||
"https://minio-api.radworks.garden/radworks-releases/radicle-desktop/pre-release/${VERSION}_${SHORT_RELEASE_SHA}/radicle-desktop_${VERSION}_amd64.AppImage" \
|
||||
--output release-artifacts/radicle-desktop-amd64.AppImage
|
||||
cp -a "target/release/bundle/dmg/Radicle_${VERSION}_aarch64.dmg" \
|
||||
release-artifacts/radicle-desktop-aarch64.dmg
|
||||
echo -n "{\"sha\": \"${RELEASE_SHA}\", \"version\": \"${VERSION}\"}" \
|
||||
> release-artifacts/latest.json
|
||||
```
|
||||
|
||||
The content of `release-artifacts` should look like this:
|
||||
|
||||
```plain
|
||||
release-artifacts
|
||||
latest.json
|
||||
radicle-desktop-aarch64.dmg
|
||||
radicle-desktop-amd64.AppImage
|
||||
```
|
||||
|
||||
- Sign the Debian package
|
||||
|
||||
```bash
|
||||
curl -fLO \
|
||||
https://minio-api.radworks.garden/radworks-releases/radicle-desktop/pre-release/${VERSION}_${SHORT_RELEASE_SHA}/radicle_desktop_${VERSION}_amd64.deb
|
||||
```
|
||||
|
||||
TODO: complete this
|
||||
|
||||
- Update Arch Linux package info
|
||||
- Update `pkgver` in `arch/radicle-desktop/PKGBUILD` to match the release version
|
||||
- Update `_commit` in `arch/radicle-desktop/PKGBUILD` to the release commit
|
||||
@@ -20,20 +82,34 @@
|
||||
cd arch && ./generate-srcinfo.sh
|
||||
```
|
||||
|
||||
- Create a patch with the changes and wait for CI to pass
|
||||
- Commit and push the changes to `arch/radicle-desktop/PKGBUILD` and
|
||||
`arch/radicle-desktop/.SRCINFO`:
|
||||
|
||||
```bash
|
||||
git commit -m "Update arch package to v${VERSION}"
|
||||
git push rad
|
||||
```
|
||||
|
||||
- Wait for CI of the Release Patch to pass.
|
||||
- Wait for approval of the Release Patch and merge it into `main`.
|
||||
- Publish release files
|
||||
|
||||
```bash
|
||||
scp -i "$(rad path)/keys/radicle" \
|
||||
release-artifacts/* "release@files.radicle.xyz:/mnt/radicle/files/releases/radicle-desktop/latest/"
|
||||
```
|
||||
|
||||
- Publish the Debian package to the APT repository (TODO)
|
||||
- Publish the Arch package by pushing changes to the [Arch User Repository][4]:
|
||||
|
||||
```bash
|
||||
cd arch && ./publish.sh "Release vX.Y.Z"
|
||||
cd arch && ./publish.sh "Release v${VERSION}"
|
||||
```
|
||||
|
||||
You’ll get a chance to review the changes. You need to be a maintainer of the
|
||||
AUR package to push.
|
||||
You need to be a maintainer of the AUR package to push.
|
||||
- Verify the Arch package version on the [AUR](https://aur.archlinux.org/packages/radicle-desktop).
|
||||
- Announce the release on Zulip, following the [previous announcement format][3].
|
||||
- Resolve the previous release topic on Zulip.
|
||||
|
||||
[0]: https://minio.radworks.garden/browser/radworks-releases/radicle-desktop%2F
|
||||
[3]: https://radicle.zulipchat.com/#narrow/channel/409174-announcements/topic/radicle-desktop.20v0.2E2.2E0.20.28early.20preview.29/with/514356912
|
||||
[4]: https://aur.archlinux.org/packages/radicle-desktop
|
||||
|
||||
Reference in New Issue
Block a user