Skip to content

ci(conformance): add Ubuntu package smoke test - #3127

Draft
SDAChess wants to merge 17 commits into
mainfrom
ci/conformance-ubuntu
Draft

ci(conformance): add Ubuntu package smoke test#3127
SDAChess wants to merge 17 commits into
mainfrom
ci/conformance-ubuntu

Conversation

@SDAChess

@SDAChess SDAChess commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add an Ubuntu 24.04 conformance target that builds and installs the amd64 Debian package, then runs the shared smoke suite against Docker. Reuse single-target build workflows so conformance consumes the same artifacts as the existing packaging pipelines.

Related Issue

No issue required: this is localized CI coverage and test-harness maintenance.

This change is stacked on the Fedora package conformance work.

Changes

  • Extract reusable single-target VM driver and Debian package build workflows
  • Preserve the existing multi-platform VM driver and Debian package matrices
  • Build one amd64 Debian package from the conformance pipeline’s existing binary artifacts
  • Install and exercise the Debian package in an Ubuntu 24.04 guest with Docker
  • Add post-artifact Ansible provisioners to the test-guest harness
  • Configure and start installed RPM and DEB gateways through a shared Ansible playbook
  • Keep the conformance smoke command explicit and separate from package provisioning
  • Move the Fedora rootless Podman target onto the same package provisioning path

Testing

  • nix fmt -- --ci nix/test-guest/default.nix
  • bash -n nix/test-guest/run.sh
  • ShellCheck
  • Ansible playbook syntax check
  • nix run .#test-guest -- --list
  • Actionlint on the affected workflows
  • git diff --check
  • mise run pre-commit (not run, per request)
  • VM-backed package conformance (runs in GitHub Actions)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@SDAChess SDAChess changed the title Ci/conformance ubuntu ci(conformance): add Ubuntu package smoke test Sep 2, 2026
Comment thread .github/workflows/build-deb.yml Outdated
runs-on: ${{ inputs.runner }}
timeout-minutes: 20
container:
image: ghcr.io/nvidia/openshell/ci:latest
OPENSHELL_GATEWAY_BINARY="${PWD}/package-binaries/openshell-gateway" \
OPENSHELL_DRIVER_VM_BINARY="${PWD}/package-binaries/openshell-driver-vm" \
OPENSHELL_DEB_VERSION="${INPUTS_DEB_VERSION}" \
OPENSHELL_DEB_ARCH="${{ inputs.arch }}" \
Comment thread .github/workflows/build-deb.yml Outdated
runs-on: ${{ inputs.runner }}
timeout-minutes: 20
container:
image: ghcr.io/nvidia/openshell/ci:latest

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What does this image provide that some standard upstream image does not?

- name: Configure package inputs
run: |
set -euo pipefail
chmod +x package-binaries/openshell{,-gateway,-driver-vm}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does this also need to be addressed at the source?

path: conformance-input

- name: Install RPMs and check status
- name: Run Fedora package conformance

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: Should have been in an earlier commit.

Comment on lines +208 to +209
env:
OPENSHELL_TEST_GUEST_DRIVER: podman

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

WHy does this need to be specified here? Should it not be specified in the provisioner?

OPENSHELL_TEST_GUEST_CACHE_DISABLE=1 nix run .#test-guest -- \
--distro ubuntu-24-04 \
--with docker \
--install deb-input/*.deb \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a bit broader than the rpm pattern.

set -euo pipefail
chmod +x conformance-input/openshell-conformance
OPENSHELL_TEST_GUEST_CACHE_DISABLE=1 nix run .#test-guest -- \
--distro ubuntu-24-04 \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is different to the rootless config that I have in #3107! That's great!

Comment on lines +11 to +12
vars:
openshell_driver: "{{ lookup('ansible.builtin.env', 'OPENSHELL_TEST_GUEST_DRIVER') }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should this be set in the container runtime provisioner?

elezar
elezar previously approved these changes Sep 2, 2026

@elezar elezar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Once again there are some comments / follow-ups that I'd call out here.

There are also one or more changes that should rather be restricted to #3086, but I won't block on them.

@SDAChess
SDAChess marked this pull request as draft September 2, 2026 13:30
Signed-off-by: Simon Scatton <sscatton@nvidia.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.

3 participants