From 555e00537219ae5a97fc97ba4dd512fb56e90ae1 Mon Sep 17 00:00:00 2001 From: jenkins Date: Mon, 9 Nov 2026 12:26:22 -0600 Subject: [PATCH] ci: add bounded Lesavka Android lifecycle qualification --- services/jenkins/configmap-jcasc.yaml | 43 ++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/services/jenkins/configmap-jcasc.yaml b/services/jenkins/configmap-jcasc.yaml index c05bd46a..f61eeeb3 100644 --- a/services/jenkins/configmap-jcasc.yaml +++ b/services/jenkins/configmap-jcasc.yaml @@ -219,7 +219,7 @@ data: parameters { stringParam('EXPECTED_SOURCE_REVISION', '', 'Exact reviewed Lesavka source commit.') choiceParam('BUILD_ARCH', ['amd64', 'arm64'], 'Native worker architecture; no emulation.') - choiceParam('BUILD_KIND', ['toolchain', 'runtime-vm'], 'Compiler toolchain or AMD64 public-input VM worker.') + choiceParam('BUILD_KIND', ['toolchain', 'runtime-vm', 'android-runtime'], 'Compiler toolchain or AMD64 public-input fixture worker.') } definition { cpsScm { @@ -279,6 +279,7 @@ data: // Seed reloads replace Pipeline-added properties; retain the same bounds here. properties { disableConcurrentBuilds() + copyArtifactPermission { projectNames('lesavka-android-runtime') } buildDiscarder { strategy { logRotator { @@ -309,6 +310,46 @@ data: } } } + pipelineJob('lesavka-android-runtime') { + properties { + disableConcurrentBuilds() + buildDiscarder { + strategy { + logRotator { + daysToKeepStr('14') + numToKeepStr('8') + artifactDaysToKeepStr('-1') + artifactNumToKeepStr('4') + } + } + } + } + description('Exact archived Play fixtures in an owned Android VM. Modeled replacement/recovery only; no Google Play delivery, real phone, signing identity or deployment.') + parameters { + stringParam('EXPECTED_SOURCE_REVISION', '', 'Exact reviewed runtime fixture commit.') + stringParam('ANDROID_BUILD_SOURCE', '', 'Exact archived APK source commit.') + stringParam('ANDROID_BUILD_NUMBER', '', 'Specific lesavka-android run; never latest.') + stringParam('APK20_SHA256', '', 'Reviewed unsigned version-20 fixture hash.') + stringParam('APK21_SHA256', '', 'Reviewed unsigned version-21 fixture hash.') + stringParam('APK22_SHA256', '', 'Reviewed unsigned version-22 fixture hash.') + choiceParam('ANDROID_API', ['34', '36'], 'Empty VM API; separate result per platform.') + stringParam('ANDROID_WORKER_IMAGE', '', 'Reviewed lesavka-android-runtime image digest.') + } + definition { + cpsScm { + scm { + git { + remote { + url('https://scm.bstein.dev/bstein/lesavka.git') + credentials('gitea-pat') + } + branches('*/dev-phone-companion-updates') + } + } + scriptPath('docker/Jenkinsfile.android-runtime') + } + } + } pipelineJob('lesavka-software-tests') { // Seed reloads replace Pipeline-added properties; retain the same bounds here. properties {