Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
c5e32c0
scripts: clone the kernel over HTTPS by default
obbardc Sep 5, 2026
a67806e
scripts: derive every version field through derive-localversion.sh
obbardc Sep 5, 2026
38aaf74
build-kernel.sh: resolve the latest tag the way CI does
obbardc Sep 5, 2026
765e773
prepare-source.sh: record where a local build came from
obbardc Sep 5, 2026
e9279e4
packaging: date debian/changelog from the kernel commit
obbardc Sep 5, 2026
8f09060
scripts: add build-source-package.sh
obbardc Sep 5, 2026
217249d
build-kernel.sh: build a source package, and build from one
obbardc Sep 5, 2026
a56d1cb
build-kernel.sh: need docker-pkg-build only to build a missing image
obbardc Sep 5, 2026
87af1e2
docs: describe building and consuming a source package locally
obbardc Sep 5, 2026
ba06ff2
ci: make one matrix entry one generated package
obbardc Sep 5, 2026
f51afd8
docs: describe the flattened delivery matrix
obbardc Sep 5, 2026
7328157
ci: move the Ubuntu DKMS exception into the delivery matrix
obbardc Sep 5, 2026
c4363ad
ci: stop the build job name nesting variant above suite
obbardc Sep 5, 2026
d117323
ci: keep kernel_variant out of the kernel version
obbardc Sep 5, 2026
2592bd1
ci: name each build leg with its own kernel_variant
obbardc Sep 5, 2026
62c3c9d
ci: rename the matrix keys to builds and name
obbardc Sep 5, 2026
16d0ced
ci: add the mainline, linux-next and Arduino flavours
obbardc Sep 5, 2026
0aad84b
ci: drop the resolve job and gate the build legs directly
obbardc Sep 5, 2026
f325bc8
ci: branch on the build path in the caller, not inside the build
obbardc Sep 5, 2026
eb0dbbb
ci: pass prepare's values as step outputs and drop checkout credentials
obbardc Sep 5, 2026
f4a0d2d
ci: name the Ubuntu build job for where it builds
obbardc Sep 5, 2026
af7a5f0
ci: pull the builder image instead of rebuilding it every job
obbardc Sep 5, 2026
e1d11b6
ci: name the jobs for what they produce
obbardc Sep 5, 2026
f5ae46d
ci: drop the questing and bookworm suites from CI
obbardc Sep 5, 2026
cb52b51
ci: pin actions/checkout and actions/upload-artifact to v7.0.1
obbardc Sep 5, 2026
4ded55c
ci: scope the token per job and say what each permission is for
obbardc Sep 5, 2026
4f19b34
ci: pin actions/download-artifact to v8.0.1
obbardc Sep 5, 2026
eab41c3
ci: pin upload-private-artifact-action to the aws-v4 commit
obbardc Sep 5, 2026
5f6863b
ci: dispatch builds by name, defaulting to the whole matrix
obbardc Sep 5, 2026
3db7153
ci: release by promoting the nightly build, not by rebuilding it
obbardc Sep 5, 2026
c18d277
ci: drop the debug-build input
obbardc Sep 5, 2026
6817d12
ci: drop the PR-override inputs from the workflows
obbardc Sep 5, 2026
a125505
ci: let the run decide where a build is published, not the entry
obbardc Sep 5, 2026
3849720
ci: resolve the nightly's build-dependencies from released archives only
obbardc Sep 5, 2026
6058750
ci: fold the release promotion into the nightly build
obbardc Sep 5, 2026
fb61fad
ci: state pr-build's empty target-workspace outright
obbardc Sep 5, 2026
85088e7
packaging: drop the trailing ~ from every Debian revision
obbardc Sep 5, 2026
6606fb3
ci: say what kver-extra marks in pr-build
obbardc Sep 5, 2026
19598a5
ci: bring back a release workflow, building the ref it ships
obbardc Sep 5, 2026
bca769e
ci: drop the PR-patch inputs nothing passes
obbardc Sep 5, 2026
ae88941
ci: require debian-revision in prepare and drop the matrix lookup
obbardc Sep 5, 2026
1162c59
ci: say why the family guards exist and why a skipped check reads oddly
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
125 changes: 125 additions & 0 deletions .github/actions/debusine-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: Build in Debusine
description: >
Generate the Debian source package from the prepared tree and submit it 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 generated source package'
value: ${{ steps.generate-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

- name: Download prepared source tree
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: kernel-srcpkg-${{ inputs.flavour }}-${{ inputs.suite }}
path: /tmp/srcpkg-artifact

- name: Extract prepared source tree
shell: bash
run: |
mkdir srcpkg
tar xzf /tmp/srcpkg-artifact/*.tar.gz \
-C srcpkg --strip-components=1

- name: Generate source package
id: generate-srcpkg
shell: bash
env:
SUITE: ${{ inputs.suite }}
DEBUSINE_ASSEMBLE_ORIG: "true"
run: |
SUITE="$SUITE" debusine-action/lib/generate-source-package

- 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