Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 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
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
126 changes: 126 additions & 0 deletions .github/actions/debusine-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
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.

# Shared by the two Debian workflows, which differ only in what they do with
# the result: build-kernel-debian.yml downloads the .deb files and uploads them
# to S3, release-kernel-debian.yml promotes them to a target workspace. Holding
# these steps in a composite action lets each workflow declare its own runner,
# container and environment while keeping one copy of the build itself.
#
# 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. A staging build may depend on a package version that has only
reached qli-staging; a release build reads qli alone, so a released
kernel is never built against something unreleased.
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