Skip to content

ci(wsl): run the WSL orcad lane on Debian 12 and Fedora 41 too - #29821

Merged
nwparker merged 1 commit into
mainfrom
nwparker/wsl-lane-more-distros
Oct 20, 2026
Merged

nwparker merged 1 commit into
mainfrom
nwparker/wsl-lane-more-distros

Conversation

@nwparker

@nwparker nwparker commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​12 $\color{#cf222e}{\Huge{\mathbf{−}}}$​6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​6
Prod 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​83 $\color{#cf222e}{\Huge{\mathbf{−}}}$​17 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​66

Summary

The real-WSL lane only covered Ubuntu 24.04. A compatibility sweep found orcad works on Debian, Fedora, openSUSE, Arch, Oracle and Alpine (with libstdc++), but Fedora, Arch and Oracle first failed because of a test assumption, not orcad. This PR keeps that coverage in CI and fixes the assumption.

Before / after

Before: one lane leg (Ubuntu 24.04, systemd off and on). A distro whose new users get ~/.bash_profile failed the login-environment check because the test appended its export to ~/.profile, which a login bash then never reads.
After: three legs: Ubuntu 24.04 (unchanged, same check name), Debian 12 and Fedora 41 (systemd off). The test writes the export to the first of ~/.bash_profile, ~/.bash_login, ~/.profile that exists, which is what a login bash reads.

Mechanism

  • New container-rootfs job exports the debian:12 and fedora:41 image filesystems with docker export (digest printed in the log) and uploads them as artifacts.
  • The wsl2 job becomes a matrix. Container legs import only the systemd-off distro and install git/procps (plus shadow-utils/util-linux on Fedora) before creating the orca user. The Ubuntu leg keeps its pinned, checksum-verified rootfs and cache.
  • wsl-orcad-real-distro-lane.test.ts: the systemd distro is optional (ORCA_WSL_ORCAD_LANE_SYSTEMD_DISTRO=''), and the teardown's shared-interop check runs only when it exists.
  • Receipt artifacts are per family.

Why this approach

Container images are the cheapest reproducible source of Debian and Fedora root filesystems on a hosted runner. They carry no systemd, which is why those legs are systemd-off only; the Ubuntu leg still covers systemd-on. Not a required check, CI only, no product code.

Testing

The lane runs on this PR (the workflow file is in its path filter).

@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 1 minute.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 32499af3-5824-499f-89aa-96003c97faea
📥 Commits

Reviewing files that changed from the base of the PR and between e82d74a and ea7b78a.

📒 Files selected for processing: 2
  • .github/workflows/wsl-orcad-e2e.yml
  • src/main/wsl/wsl-orcad-real-distro-lane.test.ts
📝 Walkthrough

The WSL E2E workflow now tests Ubuntu 24.04 with systemd disabled and enabled, plus Debian 12 and Fedora 41 with systemd disabled. It exports Debian and Fedora root filesystems from container images and imports them in the Windows job. The test lane supports omitting the systemd distro, selects a login profile for the SSH_AUTH_SOCK export, and runs systemd-specific checks only when that distro is configured.

Priority: ⬇️ Low

Merge Risk: 🟡 Moderate · up to e82d7

A container export failure can prevent the existing Ubuntu WSL tests from running. Decouple Ubuntu coverage before merging unless that loss of coverage is acceptable.

Pre-merge checks: Passed 3 · Failed 2

Failed Failed checks: 2 warnings

Check name Status Explanation Resolution
Description check Warning The description explains the before and after states, implementation mechanism, rationale, and testing. It does not include the required Linked Issue section or link, and it does not explicitly provid… Add the required Linked Issue section with an issue link, or document the maintainer exception. Add a Visual Proof section containing N/A and a brief explanation that this CI-only change has no visual or interaction changes. Include any a…
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title clearly identifies the primary change: expanding the WSL orcad CI lane to test Debian 12 and Fedora 41.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the before and after states, implementation mechanism, rationale, and testing. It does not include the required Linked Issue section or link, and it does not explicitly provide the required Visual Proof response for this non-UI change.

Resolution

Add the required Linked Issue section with an issue link, or document the maintainer exception. Add a Visual Proof section containing N/A and a brief explanation that this CI-only change has no visual or interaction changes. Include any applicable checklist items or explain why they do not apply.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

✨ Finishing Touches: 💡 2
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b8494992-afa8-4bcf-bd59-49381b888ec7
📥 Commits

Reviewing files that changed from the base of the PR and between 33fd7d3 and e82d74a.

📒 Files selected for processing: 2
  • .github/workflows/wsl-orcad-e2e.yml
  • src/main/wsl/wsl-orcad-real-distro-lane.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 3 remain after this review.

name: WSL2 distros (systemd off and on)
needs: template
name: ${{ matrix.name }}
needs: [template, container-rootfs]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

Keep Ubuntu coverage independent of container exports.

If either container-rootfs matrix leg fails, GitHub Actions skips the entire wsl2 matrix. The Ubuntu leg does not use a container artifact, but it also loses coverage. Separate the Ubuntu job from the container-dependent legs, or otherwise make each leg depend only on its required rootfs export. (docs.github.com)

Matrix the lane over distro families. Debian 12 and Fedora 41 rootfs are exported from their
container images (systemd off only, since the images ship no systemd). The lane test now makes the
systemd distro optional and writes its login-env export to the file a login bash actually reads
(~/.bash_profile on Fedora and Arch), which made new distros fail for the wrong reason.

Co-Authored-By: Claude <noreply@anthropic.com>
@nwparker
nwparker force-pushed the nwparker/wsl-lane-more-distros branch from e82d74a to ea7b78a Compare October 20, 2026 21:44
@nwparker
nwparker merged commit 706ea95 into main Oct 20, 2026
39 checks passed
@nwparker
nwparker deleted the nwparker/wsl-lane-more-distros branch October 20, 2026 21:57
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.

1 participant