ci: Use persistent volumes for portage, binpkgs

Recompiling the entire OS for every build takes way too long for
development purposes.  Since we build binary packages anyway, let's keep
them around between builds by storing them on a Kubernetes persistent
volume.

Eventually, I want add a build parameter to wipe out the binary package
storage to force a from-scratch build.  We'll use that option for robust
periodic builds, once development has slowed down.
Dustin 2024-12-22 20:29:33 -06:00
parent fd925c3da0
commit 5726d2b76f
2 changed files with 21 additions and 4 deletions

View File

@ -21,12 +21,21 @@ spec:
name: workspace-volume name: workspace-volume
subPath: gentoo subPath: gentoo
- mountPath: /usr/aarch64-unknown-linux-gnu/var/cache/binpkgs - mountPath: /usr/aarch64-unknown-linux-gnu/var/cache/binpkgs
name: workspace-volume name: binpkgs
subPath: binpkgs subPath: photoframe2
- mountPath: /var/cache/binpkgs - mountPath: /var/cache/binpkgs
name: workspace-volume name: binpkgs
subPath: binpkgs subPath: photoframe2
- mountPath: /var/cache/distfiles - mountPath: /var/cache/distfiles
name: workspace-volume name: workspace-volume
subPath: distfiles subPath: distfiles
- mountPath: /var/db/repos/gentoo
name: portage
hostUsers: false hostUsers: false
volumes:
- name: binpkgs
persistentVolumeClaim:
claimName: binpkgs
- name: portage
persistentVolumeClaim:
claimName: portage

8
prepare.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/sh
if [ ! -f /var/db/repos/gentoo/metadata/timestamp ]; then
emerge-webrsync
fi
if [ "$(find /var/db/repos/gentoo/metadata -newermt '-24 hours' | wc -l)" -eq 0 ]; then
emaint sync
fi