Add container instructions to release pipeline for apt signing

This commit is contained in:
Sebastian Martinez
2025-07-31 18:55:35 +02:00
committed by Rūdolfs Ošiņš
parent 21fda6c954
commit e48cc100a5
+31 -50
View File
@@ -63,39 +63,6 @@
radicle-desktop-amd64.AppImage
```
- Sign the Debian package
TODO: automate the signing process with a docker image so it can be done from
the host machine.
Currently this happens via an Ubuntu vm manually:
```bash
# Set the VERSION and SHORT_RELEASE_SHA variables to the same values here
# in the VM as on the host system.
RELEASE_SHA=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SHORT_RELEASE_SHA=XXXXXXXX
cd radicle-apt-repo
rad sync && git fetch
curl -fLO \
"https://minio-api.radworks.garden/radworks-releases/radicle-desktop/pre-release/${VERSION}_${SHORT_RELEASE_SHA}/radicle-desktop_${VERSION}_amd64.deb"
RADICLE_APT_SIGNING_KEY=~/work/apt-signing/rudolfs ./import-deb ./radicle-desktop_${VERSION}_amd64.deb
rm -rf ./radicle-desktop_0.7.1_amd64.deb
git checkout -b release-v${VERSION}
git commit -a -m "Update radicle-desktop to ${VERSION}"
# Make sure ssh-agent is started and `rad auth` is working, then publish the patch.
git push rad HEAD:refs/patches
# The next step is to merge this patch into main, which effectively publishes
# the Deb packages. Continue this in the publish section below.
```
- 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
@@ -119,27 +86,32 @@
- Wait for CI of the Release Patch to pass
- Wait for approval of the Release Patch and merge it into `main`
- Publish release files
- Sign the Debian package from `radicle-apt-repo`
```bash
scp -i "$(rad path)/keys/radicle" \
release-artifacts/* "release@files.radicle.xyz:/mnt/radicle/files/releases/radicle-desktop/latest/"
cd radicle-apt-repo
rad sync && git fetch
curl -fLO \
"https://minio-api.radworks.garden/radworks-releases/radicle-desktop/pre-release/${VERSION}_${SHORT_RELEASE_SHA}/radicle-desktop_${VERSION}_amd64.deb"
podman build -t apt-import scripts
podman run --rm -v ~/work/apt-signing/rudolfs:/src/keys/signing-key -v $(pwd):/src/apt -v ./radicle-desktop_${VERSION}_amd64.deb:/src/tmp.deb apt-import
rm -rf ./radicle-desktop_${VERSION}_amd64.deb
git checkout -b release-v${VERSION}
git add -A
git commit -m "Update radicle-desktop to ${VERSION}"
git push rad HEAD:refs/patches
# Once you get peer approval, merge the patch
git checkout main
git merge --ff-only release-v${VERSION}
git push
```
- Publish the Debian package to the APT repository
- Switch to the `radicle-apt-repo` repository
```bash
cd radicle-apt-repo
```
- Merge the patch that was created on radicle-apt-repo in the VM into main from your host machine as a delegate
```bash
rad sync && git fetch
rad patch checkout XXXXXXX
git checkout main
git merge --ff-only patch/XXXXXXX
git push
```
- Publish the Debian package to the APT repository from `radicle-apt-repo`
- Upload the signed deb packages to files.radicle.xyz
```bash
@@ -151,6 +123,15 @@
TODO: can we make scp skip the files that are already uploaded?
- Publish release files from `radicle-desktop`
```bash
cd radicle-desktop
scp -i "$(rad path)/keys/radicle" \
release-artifacts/* "release@files.radicle.xyz:/mnt/radicle/files/releases/radicle-desktop/latest/"
```
- Publish the Arch package by pushing changes to the [Arch User Repository][1]
(You need to be a maintainer of the AUR package to push)