From ddd75def1bc8955a93ae1b0380fa37ebe220d58c Mon Sep 17 00:00:00 2001 From: Christopher Obbard Date: Thu, 3 Sep 2026 03:39:33 +0100 Subject: [PATCH] ci: resolve staging build-deps from qli-staging The build job passed a fixed 'EXTRA_BUILD_DEP_WORKSPACES: qli', so every run resolved its build-dependencies from the released qli workspace alone. Daily and PR builds are staged work: they can depend on a package version that has only reached qli-staging, and with qli the sole extra repository those builds fail to satisfy the dependency, or silently pick up the older released one. Pick the workspace list from the same input that already picks the environment and the publish path. A run that promotes to a release workspace is a Production deployment and keeps reading qli only, so a released kernel is never built against something that has not been released alongside it. A run that only builds into a CI workspace is a Staging one and reads qli and qli-staging, matching what the staged archive actually offers. Closes: #93 Signed-off-by: Christopher Obbard --- .github/workflows/build-kernel-debusine.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-kernel-debusine.yml b/.github/workflows/build-kernel-debusine.yml index 7b8cc17a..b632bf37 100644 --- a/.github/workflows/build-kernel-debusine.yml +++ b/.github/workflows/build-kernel-debusine.yml @@ -12,6 +12,10 @@ name: build-debusine # target-workspace != '' -> release path: promote from CI workspace to the # target Debusine workspace via debusine-action lib/release. # +# The same input picks the GitHub environment and the workspaces the build +# resolves its build-dependencies from: a Staging run also reads qli-staging, +# a Production run reads qli alone. +# # Jobs: # build (debusine-pkg-builder container): generates .dsc, submits to Debusine. # publish (self-hosted runner): S3 upload (daily path only). @@ -120,7 +124,9 @@ jobs: DEBUSINE_TOKEN: ${{ secrets.DEBUSINE_TOKEN }} DEBUSINE_PARENT_WORKSPACE: ${{ inputs.debusine-parent-workspace }} SUITE: ${{ inputs.suite }} - EXTRA_BUILD_DEP_WORKSPACES: qli + # Staging runs may build against packages that have not been released + # to qli yet, so they resolve build-dependencies from qli-staging too. + EXTRA_BUILD_DEP_WORKSPACES: ${{ inputs.target-workspace != '' && 'qli' || 'qli qli-staging' }} run: | # No -x here: DEBUSINE_TOKEN is in env, keep xtrace off. set -euo pipefail