Skip to content

bootc-ubuntu-setup: Add support for ubuntu-26.04 runners - #52

Merged
cgwalters merged 3 commits into
mainfrom
support-ubuntu-2604-signoff
Sep 10, 2026
Merged

cgwalters merged 3 commits into
mainfrom
support-ubuntu-2604-signoff

Conversation

@cgwalters

Copy link
Copy Markdown
Member

Same content as #50, with a Signed-off-by added since I could not
push directly to the redhat-chai-bot fork branch (maintainer_can_modify
is false and I don't have collaborator access on that fork).

Closes #50

Assisted-by: Claude Code (Claude Opus 4)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Ubuntu 26.04 support to the reusable setup action while retaining Ubuntu 24.04’s package-upgrade path.

Changes:

  • Dispatches package setup by Ubuntu version.
  • Adds Ubuntu 26.04 PR and published-action jobs.
  • Verifies native Podman heredoc support in CI.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
bootc-ubuntu-setup/action.yml Adds Ubuntu 26.04 package setup.
.github/workflows/test-actions-pr.yml Tests setup and Podman heredocs on 26.04.
.github/workflows/test-actions-published.yml Smoke-tests the published action on 26.04.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@gursewak1997 gursewak1997 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just needs signed off by: for 2 commits

redhat-chai-bot and others added 3 commits September 10, 2026 17:33
Ubuntu 26.04 ships a sufficiently modern podman (with heredoc support
and no manifest handling bugs), so unlike 24.04 we can skip the plucky
PPA and package upgrade path entirely. This simplifies the setup on
26.04 to just installing `just`.

The version gate is refactored from a hard `test` assertion into a
`case` statement that dispatches per-version setup logic and rejects
unsupported runners with a clear error.

CI test jobs are added for ubuntu-26.04 in both PR and published-action
workflows. The PR test includes a heredoc Containerfile build to verify
the native podman meets the minimum capability bar per the acceptance
criteria.

Closes: #49

Assisted-by: Claude Code (Claude Opus 4)
Signed-off-by: Colin Walters <walters@verbum.org>
The ubuntu-24.04 and ubuntu-26.04 bootc-ubuntu-setup test jobs in
test-actions-pr.yml and test-actions-published.yml each check the same
basic host functionality after setup runs: podman actually runs a
container, and the runner's preinstalled (not the pinned setup-rust)
Rust and Go toolchains still work. This duplicates the same checks
across two jobs and two workflow files.

Factor these into a composite action under .github/actions/ rather
than the repo's top-level action directories, since this is an
internal test helper rather than a published, supported action like
bootc-ubuntu-setup or setup-rust.

This commit only adds the action; it is not yet wired into any
workflow.

Assisted-by: AI
Signed-off-by: Colin Walters <walters@verbum.org>
Both bootc-ubuntu-setup test jobs (ubuntu-24.04 and ubuntu-26.04) in
test-actions-pr.yml, plus their equivalents in
test-actions-published.yml, duplicated the same podman/Rust/Go sanity
checks inline. Replace that duplication with the composite action
added in the prior commit.

The local-checkout workflow references the action by relative path
(./.github/actions/verify-basic-requirements), while the published
workflow references it remotely the same way it already does for
bootc-ubuntu-setup and setup-rust
(bootc-dev/actions/.github/actions/verify-basic-requirements@main),
since GitHub Actions supports uses: for any subdirectory of a repo.

The remaining 'Verify setup' step keeps just --version and
test -n "$ARCH", which are outputs specific to bootc-ubuntu-setup
rather than generic host checks, dropping only the now-redundant
podman --version line.

Assisted-by: AI
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters
cgwalters force-pushed the support-ubuntu-2604-signoff branch from 783b8d4 to 38a3230 Compare September 10, 2026 21:33
@cgwalters
cgwalters merged commit af52410 into main Sep 10, 2026
11 checks passed
cgwalters-bot added a commit to cgwalters-bot/actions that referenced this pull request Sep 23, 2026
On ubuntu-24.04 with libvirt enabled, the libvirt install step takes
libc6 2.41 from plucky (the plucky source is at the default priority),
and libc6 Breaks the older base-files, so /usr/lib/os-release reports
25.04 from then on. The fixed-QEMU step re-reads os-release and so
logs "Skipping Resolute QEMU setup on ubuntu-25.04": the Resolute QEMU
has never actually been installed on 24.04 consumers such as bcvk and
ostree.

This redoes bootc-dev#54, which was merged into the stacked
support-ubuntu-2604-signoff branch after bootc-dev#52 had already landed, and
so never reached main. As there, read os-release once in a first step
and pass the result to the steps that branch on it, and have the
virtualization test assert that QEMU is at least 10.2, since a guest
can boot with the old one too. Note this means the Resolute QEMU step
now really runs on 24.04 libvirt jobs.

Consumers can't trust os-release after this action either, so expose
the detected value as the host-os output.

Assisted-by: AI
cgwalters-bot added a commit to cgwalters-forge/bootc-dev-actions that referenced this pull request Sep 29, 2026
On ubuntu-24.04 with libvirt enabled, the libvirt install step takes
libc6 2.41 from plucky (the plucky source is at the default priority),
and libc6 Breaks the older base-files, so /usr/lib/os-release reports
25.04 from then on. The fixed-QEMU step re-reads os-release and so
logs "Skipping Resolute QEMU setup on ubuntu-25.04": the Resolute QEMU
has never actually been installed on 24.04 consumers such as bcvk and
ostree.

This redoes bootc-dev#54, which was merged into the stacked
support-ubuntu-2604-signoff branch after bootc-dev#52 had already landed, and
so never reached main. As there, read os-release once in a first step
and pass the result to the steps that branch on it, and have the
virtualization test assert that QEMU is at least 10.2, since a guest
can boot with the old one too. Note this means the Resolute QEMU step
now really runs on 24.04 libvirt jobs.

Consumers can't trust os-release after this action either, so expose
the detected value as the host-os output.

Generated-by: AI
cgwalters-bot added a commit to cgwalters-forge/bootc-dev-actions that referenced this pull request Oct 2, 2026
On ubuntu-24.04 the package install takes libc6 2.41 from plucky (the
plucky source is at the default priority), and libc6 Breaks the older
base-files, so os-release reports 25.04 from then on. workarounds.sh
re-reads os-release and so skips its Resolute QEMU setup, which only
runs on 24.04: the Resolute QEMU (bootc-dev#53) has never actually been
installed on 24.04 consumers such as bcvk and ostree.

This redoes bootc-dev#54, which was merged into the stacked
support-ubuntu-2604-signoff branch after bootc-dev#52 had already landed, and
so never reached main. install-deps.sh already reads os-release once
before installing anything; record what it read as a step output and
have workarounds.sh use that. The virtualization test now asserts that
QEMU is at least 10.2, since a guest can boot with the old one too.
Note this means the Resolute QEMU step now really runs on 24.04
libvirt jobs.

Consumers can't trust os-release after this action either, so expose
the detected value as the host-os output, on the deprecated
bootc-ubuntu-setup entry point too.

Generated-by: AI
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.

4 participants