From 8b6195c2e691acf0d9394f9395e797638db0b78a Mon Sep 17 00:00:00 2001 From: codex Date: Sun, 4 Oct 2026 05:27:05 -0500 Subject: [PATCH] ci: move build scratch off node runtime storage --- Jenkinsfile | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e7e1af8..78c4d09 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,10 +2,15 @@ pipeline { agent { kubernetes { defaultContainer 'tester' + // Build scratch belongs on storage volumes, not the node runtime USB drive. + workspaceVolume dynamicPVC(accessModes: 'ReadWriteOnce', requestsSize: '20Gi', storageClassName: 'ci-scratch') yaml """ apiVersion: v1 kind: Pod spec: + securityContext: + fsGroup: 1000 + fsGroupChangePolicy: OnRootMismatch nodeSelector: kubernetes.io/arch: arm64 node-role.kubernetes.io/worker: "true" @@ -72,12 +77,17 @@ spec: volumes: - name: docker-config-writable emptyDir: {} - - name: workspace-volume - emptyDir: {} """ } } environment { + PIP_CACHE_DIR = '/home/jenkins/agent/.cache/pip' + NPM_CONFIG_CACHE = '/home/jenkins/agent/.cache/npm' + SONAR_USER_HOME = '/home/jenkins/agent/.cache/sonar' + TMPDIR = '/home/jenkins/agent/.cache/tmp' + GOCACHE = '/home/jenkins/agent/.cache/go-build' + GOMODCACHE = '/home/jenkins/agent/.cache/go-mod' + GOTMPDIR = '/home/jenkins/agent/.cache/go-tmp' SUITE_NAME = 'soteria' PUSHGATEWAY_URL = 'http://platform-quality-gateway.monitoring.svc.cluster.local:9091' SONARQUBE_HOST_URL = 'http://sonarqube.quality.svc.cluster.local:9000' @@ -104,6 +114,11 @@ spec: pollSCM('H/5 * * * *') } stages { + stage('Prepare build scratch') { + steps { + sh 'mkdir -p /home/jenkins/agent/.cache/tmp /home/jenkins/agent/.cache/go-tmp' + } + } stage('Checkout') { steps { checkout scm @@ -114,6 +129,7 @@ spec: container('tester') { sh ''' set -eu + mkdir -p "$GOCACHE" "$GOMODCACHE" "$GOTMPDIR" apt-get update >/dev/null apt-get install -y --no-install-recommends bash git jq curl python3 ripgrep >/dev/null '''