Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
707b536
Join LOCALVERSION with '+' so release candidates sort below finals
obbardc Sep 5, 2026
0ebfcd0
Give the Debian revision stub a packaging revision digit
obbardc Sep 5, 2026
e713687
Compose the Debian snapshot forward instead of parsing LOCALVERSION
obbardc Sep 5, 2026
8b3f757
Carry a tag's respin ordinal through the version fields
obbardc Sep 5, 2026
43c3709
Spell the Debian snapshot in Debian's own +git<date> idiom
obbardc Sep 5, 2026
396b229
Name the commit in both version strings
obbardc Sep 5, 2026
08b2a67
Date branch-tip builds by their HEAD commit
obbardc Sep 5, 2026
2bc171c
Record the source repository, ref and commit in the changelog
obbardc Sep 5, 2026
a31a5d7
docs: describe the version scheme
obbardc Sep 5, 2026
01cd6c2
ci: resolve staging build-deps from qli-staging
obbardc Sep 5, 2026
9051a3a
ci: name the Dependabot config dependabot.yml
obbardc Sep 5, 2026
a484a5b
ci: make one matrix entry one generated package
obbardc Sep 5, 2026
4fcfa3b
docs: describe the flattened delivery matrix
obbardc Sep 5, 2026
91a9c07
ci: move the Ubuntu DKMS exception into the delivery matrix
obbardc Sep 5, 2026
b526b3c
ci: stop the build job name nesting variant above suite
obbardc Sep 5, 2026
c65cee6
ci: keep kernel_variant out of the kernel version
obbardc Sep 5, 2026
da01916
ci: name each build leg with its own kernel_variant
obbardc Sep 5, 2026
1e15816
ci: rename the matrix keys to builds and name
obbardc Sep 5, 2026
7c330d3
ci: add the mainline, linux-next and Arduino flavours
obbardc Sep 5, 2026
2dc65b4
ci: drop the resolve job and gate the build legs directly
obbardc Sep 5, 2026
386c56d
ci: branch on the build path in the caller, not inside the build
obbardc Sep 5, 2026
d963bcb
ci: pass prepare's values as step outputs and drop checkout credentials
obbardc Sep 5, 2026
2181cb6
ci: name the Ubuntu build job for where it builds
obbardc Sep 5, 2026
93dc87e
ci: pull the builder image instead of rebuilding it every job
obbardc Sep 5, 2026
86ead59
ci: name the jobs for what they produce
obbardc Sep 5, 2026
0d10ee0
ci: drop the questing and bookworm suites from CI
obbardc Sep 5, 2026
d648582
ci: pin actions/checkout and actions/upload-artifact to v7.0.1
obbardc Sep 5, 2026
ed93901
ci: scope the token per job and say what each permission is for
obbardc Sep 5, 2026
0e2461c
ci: pin actions/download-artifact to v8.0.1
obbardc Sep 5, 2026
f874e21
ci: pin actions/stale to v11.0.0
obbardc Sep 5, 2026
c2a80c4
ci: pin upload-private-artifact-action to the aws-v4 commit
obbardc Sep 5, 2026
976b892
ci: add the Qualcomm preflight checks workflow
obbardc Sep 5, 2026
077e284
ci: remove the deprecated build-kernel workflow
obbardc Sep 5, 2026
b4dd88e
ci: dispatch builds by name, defaulting to the whole matrix
obbardc Sep 5, 2026
af31628
ci: release by promoting the nightly build, not by rebuilding it
obbardc Sep 5, 2026
f6d82ab
ci: drop the debug-build input
obbardc Sep 5, 2026
34d6c9e
ci: drop the PR-override inputs from the workflows
obbardc Sep 5, 2026
67d8f89
ci: let the run decide where a build is published, not the entry
obbardc Sep 5, 2026
f8dc88b
ci: resolve the nightly's build-dependencies from released archives only
obbardc Sep 5, 2026
7a740b4
ci: fold the release promotion into the nightly build
obbardc Sep 5, 2026
f138dbf
ci: state pr-build's empty target-workspace outright
obbardc Sep 5, 2026
d7be6e8
packaging: drop the trailing ~ from every Debian revision
obbardc Sep 5, 2026
bdc7328
ci: say what kver-extra marks in pr-build
obbardc Sep 5, 2026
707795f
WIP: temporarily disable all builds
obbardc Sep 5, 2026
5f6594c
WIP: temporarily allow PR to push into staging
obbardc Sep 5, 2026
a8bafc8
wip: manual suffix
obbardc Sep 5, 2026
77a3ae2
Revert "WIP: temporarily allow PR to push into staging"
obbardc Sep 5, 2026
cc60ffa
ci: bring back a release workflow, building the ref it ships
obbardc Sep 5, 2026
b2f8f57
wip
obbardc Sep 5, 2026
5671553
ci: say why the family guards exist and why a skipped check reads oddly
obbardc Sep 5, 2026
fecd182
scripts: clone the kernel over HTTPS by default
obbardc Sep 5, 2026
a860850
ci: drop the PR-patch inputs nothing passes
obbardc Sep 5, 2026
e5889cc
ci: require debian-revision in prepare and drop the matrix lookup
obbardc Sep 5, 2026
3559248
ci: require the inputs that describe the build
obbardc Sep 5, 2026
f414b89
scripts: derive every version field through derive-localversion.sh
obbardc Sep 5, 2026
3afaa93
build-kernel.sh: resolve the latest tag the way CI does
obbardc Sep 5, 2026
6c31e20
prepare-source.sh: record where a local build came from
obbardc Sep 5, 2026
7344811
packaging: date debian/changelog from the kernel commit
obbardc Sep 5, 2026
e865428
scripts: add build-source-package.sh
obbardc Sep 5, 2026
eb70254
build-kernel.sh: build a source package, and build from one
obbardc Sep 5, 2026
1fff653
docs: describe building and consuming a source package locally
obbardc Sep 5, 2026
170691f
ci: build the source package in prepare
obbardc Sep 5, 2026
f1a29ec
ci: hand Debusine the source package prepare built
obbardc Sep 5, 2026
c09362b
ci: build the Ubuntu package from the source package
obbardc Sep 5, 2026
371b401
ci: stop uploading the prepared tree
obbardc Sep 5, 2026
fecd9b0
ci: fail when the archive holds a different orig for this version
obbardc Sep 5, 2026
83a2447
build-kernel.sh: need docker-pkg-build only to build a missing image
obbardc Sep 5, 2026
58ef67d
ci: build the Ubuntu leg in one job
obbardc Sep 5, 2026
d675ee1
ci: publish the source package to S3 beside the binaries
obbardc Sep 5, 2026
ef3f2c4
ci: test for a published version before comparing the orig
obbardc Sep 5, 2026
a27bced
wenable more builds
obbardc Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions .github/actions/debusine-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: Build in Debusine
description: >
Submit the source package the prepare job built to Debusine, returning the
CI workspace it was built in.

# Called by build-kernel-debian.yml, which decides what becomes of the result:
# every build is downloaded and uploaded to S3, and one whose caller named a
# target workspace is also promoted into it. Holding these steps in a composite
# action keeps the submission itself in one place, separate from the job that
# declares the runner, container and environment it happens in.
#
# The caller must have checked out pkg-linux-qcom into the workspace first,
# which is also where this action comes from. Runs inside the
# debusine-pkg-builder container.
#
# vars and secrets contexts do not reach a composite action, so the Debusine
# host, scope and credentials come in as inputs from the calling workflow.

inputs:
suite:
description: 'Target Debian suite (trixie, forky, sid)'
required: true
flavour:
description: 'Kernel flavour, isolating artifacts and Debusine workspaces'
required: true
debusine-host:
description: 'Debusine instance hostname'
required: true
debusine-scope:
description: 'Debusine scope'
required: true
debusine-user:
description: 'Debusine account used to submit the build'
required: true
debusine-token:
description: 'Debusine token for the CI child workspace'
required: true
debusine-parent-workspace:
description: 'Parent Debusine workspace for CI child workspace creation'
default: 'qli-ci'
extra-build-dep-workspaces:
description: >
Workspaces the build resolves its build-dependencies from, space
separated. Set by the calling workflow, which knows whether this build is
one a release may promote.
default: 'qli'
debusine-action-ref:
description: 'Ref of qualcomm-linux/debusine-action to use'
default: 'main'

outputs:
workspace:
description: 'Debusine CI workspace the package was built in'
value: ${{ steps.build-debusine.outputs.workspace }}
workspace_url:
description: 'Browser URL of that workspace'
value: ${{ steps.build-debusine.outputs.workspace_url }}
srcpkg_version:
description: 'Version of the submitted source package'
value: ${{ steps.srcpkg.outputs.srcpkg_version }}

runs:
using: composite
steps:
- name: Checkout debusine-action helpers
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
repository: qualcomm-linux/debusine-action
ref: ${{ inputs.debusine-action-ref }}
path: debusine-action
fetch-depth: 1
sparse-checkout: |
lib

# Into the workspace root: lib/build takes the .dsc from its working
# directory, and reaches its own helpers by a path relative to it, so the
# two have to be the same directory.
- name: Download source package
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: source-package-${{ inputs.flavour }}-${{ inputs.suite }}

- name: Read the source package version
# From the .dsc as downloaded, which is what Debusine will be given;
# the prepare job reported the same value from the same file.
id: srcpkg
shell: bash
run: |
set -euo pipefail
DSC=$(ls -- *.dsc)
[[ $(wc -l <<<"$DSC") -eq 1 ]] || {
echo "::error::Expected exactly one .dsc in the source package artifact, found: $DSC"
exit 1
}
SRCPKG_VERSION=$(sed -n 's/^Version: //p' "$DSC")
[[ "$SRCPKG_VERSION" =~ ^[A-Za-z0-9.+~:-]+$ ]] || {
echo "::error::Could not read a version from $DSC (got '$SRCPKG_VERSION')"
exit 1
}
echo "Submitting $DSC ($SRCPKG_VERSION)"
echo "srcpkg_version=$SRCPKG_VERSION" >> "$GITHUB_OUTPUT"

- name: Build in Debusine
id: build-debusine
shell: bash
env:
GITHUB_REPOSITORY_ID: ${{ github.repository_id }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
JOB_INDEX: ${{ inputs.flavour }}-${{ inputs.suite }}
DEBUSINE_HOST: ${{ inputs.debusine-host }}
DEBUSINE_SCOPE: ${{ inputs.debusine-scope }}
DEBUSINE_USER: ${{ inputs.debusine-user }}
DEBUSINE_TOKEN: ${{ inputs.debusine-token }}
DEBUSINE_PARENT_WORKSPACE: ${{ inputs.debusine-parent-workspace }}
SUITE: ${{ inputs.suite }}
EXTRA_BUILD_DEP_WORKSPACES: ${{ inputs.extra-build-dep-workspaces }}
run: |
# No -x here: DEBUSINE_TOKEN is in env, keep xtrace off.
set -euo pipefail
debusine-action/lib/build
workspace=$(sed -n 's/^workspace=//p' "$GITHUB_OUTPUT")
echo "workspace_url=https://${DEBUSINE_HOST}/${DEBUSINE_SCOPE}/${workspace}/" >> "$GITHUB_OUTPUT"

- name: Note Debusine workspace URL
shell: bash
env:
WORKSPACE_URL: ${{ steps.build-debusine.outputs.workspace_url }}
run: |
echo "Debusine Workspace URL: $WORKSPACE_URL" >> "$GITHUB_STEP_SUMMARY"
Loading
Loading