mirror of
https://seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury.git
synced 2026-10-18 19:10:45 +08:00
Add container instructions to release pipeline for apt signing
This commit is contained in:
+31
-50
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user