Skip to content

Commit ee11dd0

Browse files
committed
IMprove CI pipeline
Signed-off-by: bakhtin <a@bakhtin.net>
1 parent 9153e69 commit ee11dd0

4 files changed

Lines changed: 34 additions & 9 deletions

File tree

.github/workflows/release.yml

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@ jobs:
2323

2424
- name: Install tools
2525
run: |
26-
# mkosi
27-
sudo apt-get update && sudo apt-get install -y debian-archive-keyring rclone
28-
sudo -H pip3 install git+https://github.com/systemd/mkosi.git@$(cat .mkosi_version)
29-
30-
# minisign
31-
curl -sSfL https://github.com/jedisct1/minisign/releases/download/0.12/minisign-0.12-linux.tar.gz | \
32-
sudo tar xzf - -C /usr/bin --strip-components=2 minisign-linux/x86_64/minisign
26+
sudo apt-get update && sudo apt-get install -y \
27+
debian-archive-keyring \
28+
minisign\
29+
rclone
30+
pip3 install git+https://github.com/systemd/mkosi.git@$(cat .mkosi_version)
3331
3432
- name: Create rclone config
3533
run: |
34+
mkdir -p ~/.config/rclone
3635
cat << EOF > ~/.config/rclone/rclone.conf
3736
[r2-flashbots-public-artifacts]
3837
type = s3
@@ -52,9 +51,13 @@ jobs:
5251
sudo rm -f cache.tar
5352
fi
5453
54+
- name: Enable user namespaces
55+
run: |
56+
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
57+
5558
- name: Build image
5659
run: |
57-
sudo mkosi --force -I buildernet.conf
60+
mkosi --force -I buildernet.conf --image-version=${GITHUB_REF_NAME#v}-${GITHUB_SHA::8}
5861
5962
- name: Upload artifact
6063
uses: actions/upload-artifact@v4
@@ -65,6 +68,25 @@ jobs:
6568
mkosi.output/*.tar.gz
6669
mkosi.output/*.vhd
6770
71+
- name: Sign artifacts
72+
run: |
73+
mkdir -p ~/.minisign
74+
echo "$MINISIGN_SECRET_KEY" > ~/.minisign/minisign.key
75+
chmod 600 ~/.minisign/minisign.key
76+
for file in mkosi.output/*.{efi,tar.gz,vhd}; do
77+
echo "$MINISIGN_SECRET_KEY_PASSWORD" | minisign -Sm "$file" -t "github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}"
78+
done
79+
80+
- name: Generate SHA256 checksums
81+
run: |
82+
sha256sum mkosi.output/*.{efi,tar.gz,vhd} | tee mkosi.output/checksums.sha256
83+
84+
- name: Upload to R2
85+
run: |
86+
for file in mkosi.output/*.{efi,tar.gz,vhd,minisign,checksums.sha256}; do
87+
rclone copy "$file" r2-flashbots-public-artifacts:flashbots-public-artifacts/buildernet-images/${GITHUB_REF_NAME#v}/$file
88+
done
89+
6890
- name: Prepare cache
6991
run: |
7092
sudo find . \( -name "mkosi.builddir" -o -name "mkosi.cache" -o -name "mkosi.tools" \) -type d -print0 | \

.mkosi_version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d5efbf6f8cd477ec40fda7db4ccfdd48bd0379d6
1+
a425313c5811d2ed840630dbfc45c6bc296bfd48

buildernet.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ CleanPackageMetadata=true
2525
Format=none
2626
ManifestFormat=json
2727
Seed=630b5f72-a36a-4e83-b23d-6ef47c82fd9c
28+
ImageVersion=latest
2829

2930
[Runtime]
3031
TPM=no #TODO

mkosi.images/buildernet-gcp/mkosi.finalize

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ for p in "${remove_paths[@]}"; do
1818
echo "Removing $p"
1919
rm -rf $BUILDROOT$p
2020
done
21+
22+
echo "IMAGE_VERSION=${IMAGE_VERSION:-latest}" >> $BUILDROOT/usr/lib/os-release

0 commit comments

Comments
 (0)