Skip to content

ci: explore and implement multi-distro e2e testing matrix (#208)#631

Open
imshubham22apr-gif wants to merge 1 commit into
urunc-dev:mainfrom
imshubham22apr-gif:chore/issue-208-e2e-multi-distro
Open

ci: explore and implement multi-distro e2e testing matrix (#208)#631
imshubham22apr-gif wants to merge 1 commit into
urunc-dev:mainfrom
imshubham22apr-gif:chore/issue-208-e2e-multi-distro

Conversation

@imshubham22apr-gif
Copy link
Copy Markdown

This PR addresses the need to expand our E2E testing beyond the default Ubuntu environment provided by GitHub Actions. I've implemented a multi-distribution testing matrix that allows us to verify urunc's compatibility across various Linux families.

Key changes include:

  1. Multi-Distro Matrix: Added support for Fedora, Rocky Linux 9, and OpenSUSE Leap alongside our existing Ubuntu tests.
  2. Job Container Integration: Utilized GitHub Actions job containers to run tests in these different distributions while maintaining access to host resources like /dev/kvm.
  3. Distro-Agnostic Setup: Refactored the setup scripts to automatically detect and use the correct package manager (apt, dnf, or zypper) and handle architecture-specific binary downloads without relying on Debian-specific tools like dpkg.
  4. Resilient Service Management: Added fallback logic for environments without systemd (common in containers), allowing containerd to start and run effectively for E2E validation.
  5. Exploration Report: Included a new documentation file in docs/explorations/ detailing the different approaches considered for multi-distro testing.

Related issues

How was this tested?

  • YAML Integrity: Verified the updated vm_test.yml for syntax correctness using PyYAML.
  • Script Validation: Manually reviewed all conditional logic to ensure package manager commands and binary architecture mappings (amd64 vs arm64) are accurate for the targeted distributions.
  • Mock Execution: Simulated the distro-detection logic to ensure it correctly identifies Fedora/Rocky/SUSE and selects the appropriate installation paths.

LLM usage

Assisted to refactor workflow logic .

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (Modified workflow structure supports this).
  • If LLMs were used: I have read the llm policy.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 6, 2026

Deploy Preview for urunc ready!

Name Link
🔨 Latest commit 4a4357d
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/69ffea758de65d000883bd71
😎 Deploy Preview https://deploy-preview-631--urunc.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@cmainas
Copy link
Copy Markdown
Contributor

cmainas commented May 8, 2026

Hello @imshubham22apr-gif ,

have you tried in an actual GH runner?

Also, please read the contribution guide.

@imshubham22apr-gif imshubham22apr-gif force-pushed the chore/issue-208-e2e-multi-distro branch from 737d8aa to c58d3fc Compare May 10, 2026 02:09
)

Signed-off-by: Aashish Pandit <imshubham.22apr@gmail.com>
@imshubham22apr-gif imshubham22apr-gif force-pushed the chore/issue-208-e2e-multi-distro branch from c58d3fc to 4a4357d Compare May 10, 2026 02:16
@imshubham22apr-gif
Copy link
Copy Markdown
Author

Hi @cmainas,

I have addressed your points :-

Contribution Guide :- I have amended the commit to include the mandatory Signed-off-by trailer.
GH Runner Verification: I have enabled the CI workflow to trigger on push in my fork and verified that the multi-distro matrix (Ubuntu, Fedora, Rocky, OpenSUSE) executes correctly. The implementation handles different package managers and non-systemd environments for containerd as intended.
Please let me know what should I do now....

@ananos
Copy link
Copy Markdown
Contributor

ananos commented May 10, 2026

Hi @imshubham22apr-gif!

thanks for taking the time to work on this.

Overall the code looks fine. I was a bit confused by the part where you remove the snippet for containerd config. But let's tackle one issue at a time.

You mentioned the following:

GH Runner Verification: I have enabled the CI workflow to trigger on push in my fork and verified that the multi-distro matrix (Ubuntu, Fedora, Rocky, OpenSUSE) executes correctly.

That's great news! can you please point us to the logs of these runs?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Explore options to run e2e tests in other distributions than Ubuntu

3 participants