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.
This commit is contained in:
6
ci/Jenkinsfile
vendored
6
ci/Jenkinsfile
vendored
@@ -9,6 +9,12 @@ pipeline {
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Prepare') {
|
||||
steps {
|
||||
sh '. ./prepare.sh'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'env -i PATH="${PATH}" make -C aimee-os CONFIGDIR=${PWD} O=/build'
|
||||
|
||||
@@ -21,12 +21,21 @@ spec:
|
||||
name: workspace-volume
|
||||
subPath: gentoo
|
||||
- mountPath: /usr/aarch64-unknown-linux-gnu/var/cache/binpkgs
|
||||
name: workspace-volume
|
||||
subPath: binpkgs
|
||||
name: binpkgs
|
||||
subPath: photoframe2
|
||||
- mountPath: /var/cache/binpkgs
|
||||
name: workspace-volume
|
||||
subPath: binpkgs
|
||||
name: binpkgs
|
||||
subPath: photoframe2
|
||||
- mountPath: /var/cache/distfiles
|
||||
name: workspace-volume
|
||||
subPath: distfiles
|
||||
- mountPath: /var/db/repos/gentoo
|
||||
name: portage
|
||||
hostUsers: false
|
||||
volumes:
|
||||
- name: binpkgs
|
||||
persistentVolumeClaim:
|
||||
claimName: binpkgs
|
||||
- name: portage
|
||||
persistentVolumeClaim:
|
||||
claimName: portage
|
||||
|
||||
8
prepare.sh
Normal file
8
prepare.sh
Normal 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
|
||||
Reference in New Issue
Block a user