Skip to content

docs+ci: document local builds, remove the dead build script, pin actions - #128

Open
Bjordis Collaku (bjordiscollaku) wants to merge 4 commits into
mainfrom
ci/phase1-docs-and-pinning
Open

Bjordis Collaku (bjordiscollaku) wants to merge 4 commits into
mainfrom
ci/phase1-docs-and-pinning

Conversation

@bjordiscollaku

@bjordiscollaku Bjordis Collaku (bjordiscollaku) commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Closes #130, closes #131.

First of a stacked series. Documentation and pinning only, with no change to how any build runs.

docs/LOCAL-BUILD.md. The steps were run through to a successful build-dep on resolute-qcom-devel before being written down, which is what surfaced the parts that are not guessable: the published builder image is private, so it is built locally and tagged with the same name rather than pulled; docker_deb_build.py refuses to run when its checkout is behind its remote; debian/rules clean has to precede build-dep because it generates the debian/control that build-dep reads; and output lands beside the source tree rather than inside it.

Only measured figures are quoted. Build duration and peak disk are left out rather than carried over from the script this replaces, which stated both without this path having produced them.

Dead script. scripts/build-kernel-deb.sh has no callers on any branch and would fail five ways, detailed in #130.

Action pinning. Each reference is pinned to the commit its tag resolves to today, so behaviour is unchanged by construction, with the version kept in a trailing comment.

Also fixes a dead anchor in INTEGRATION.md: PIPELINE.md#manual-build-triggers does not exist, the heading is "Running it".

Draft while the rest of the series is prepared.

@bjordiscollaku Bjordis Collaku (bjordiscollaku) changed the title docs+ci: local build guide, drop dead script, pin actions docs+ci: document local builds, remove the dead build script, pin actions Oct 7, 2026
Building this kernel outside CI was undocumented. INTEGRATION.md's
"Building" section pointed at PIPELINE.md, which covers dispatching the
workflow rather than building on a developer's own machine.

Add docs/LOCAL-BUILD.md, following build-kernel.yml. Each step was run
through to a successful build-dep on resolute-qcom-devel before being
written down, which is what turned up the parts that are not guessable:
the published builder image is private, so the image is built locally and
tagged with the same name rather than pulled; docker_deb_build.py refuses
to run when its checkout is behind its remote; debian/rules clean has to
precede build-dep because it generates the debian/control that build-dep
reads; and output lands beside the source tree rather than inside it.

Also records what a build otherwise fails on: the flavour names are qcom
and qcom-rt with no generic, binary-indep has to accompany a flavour
because the per-flavour packages depend on what it builds, and the
Qualcomm sources file is needed for the DKMS module sources, which are not
in the Ubuntu archive.

Only measured figures are quoted. Build duration and peak disk are left
out rather than carried over from the script this replaces, which stated
both without this build path ever having produced them.

Two fixes to existing text while in the same files. INTEGRATION.md linked
to PIPELINE.md#manual-build-triggers, and no such heading exists; it is
"Running it". And the README opened by stating this repository is not
accepting contributions, which contradicts INTEGRATION.md describing
Qualcomm contributions landing on resolute-qcom-devel through pull
requests, as they do; CONTRIBUTING.md and SECURITY.md still carry their
own statements and the documentation table still links to both.

Documentation only.

Signed-off-by: Bjordis Collaku <bcollaku@qti.qualcomm.com>
build-kernel-deb.sh has no callers: nothing on main references it, and
neither does the CI on resolute-qcom or resolute-qcom-devel. It predates
the containerised build.

Left in place it reads as the supported way to build locally, and it would
fail. It installs build dependencies before running debian/rules clean, so
it resolves against a debian/control that has not been generated yet. It
does not add the Qualcomm sources, so the DKMS module sources cannot be
found. It defaults to flavour "generic", which this kernel does not
define. It omits binary-indep, so linux-headers and linux-qcom-* are never
produced. And it builds on the host rather than in the suite-matched
container.

docs/LOCAL-BUILD.md documents the supported path.

Signed-off-by: Bjordis Collaku <bcollaku@qti.qualcomm.com>
Every action outside premerge-distro-validation.yml was referenced by a
moving tag, so a build ran whatever the tag pointed at that day.
premerge-distro-validation.yml was already pinned and is the pattern the
rest now follow.

Each reference is pinned to the commit its tag resolves to today, so
behaviour is unchanged by construction:

  actions/checkout@v6                       -> v6.1.0
  actions/cache/restore@v4, cache/save@v4   -> v4.3.0
  actions/stale@v10                         -> v10.4.0
  upload-private-artifact-action@aws-v4     -> aws-v4

The version each hash came from is kept in a trailing comment, including on
the five already-pinned checkout references, so a reader can tell what is
pinned without resolving it.

Two things left alone. premerge-distro-validation.yml stays on checkout
v4.4.0 while the others are on v6.1.0: unifying them is a version bump
rather than a pin. Likewise upload-private-artifact-action has an aws-v5
tag, but this pins the aws-v4 the workflow already used.

Signed-off-by: Bjordis Collaku <bcollaku@qti.qualcomm.com>
CI appends +qcom<N>.<sha> to builds that have commits past a Canonical
tag, through apply-local-version-suffix.sh. The local build guide does
not run that step, so a local build of resolute-qcom-devel produces
packages carrying the exact version of the Canonical upload it is based
on.

Say so, and describe the guide as using the same container and steps
as build-kernel.yml rather than as building the same way, since the
version is the one thing that differs.

Signed-off-by: Bjordis Collaku <bcollaku@qti.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Actions are referenced by moving tags Local kernel builds are undocumented

1 participant