Repository navigation
ci(wsl): run the WSL orcad lane on Debian 12 and Fedora 41 too - #29821
Conversation
|
Warning Review limit reachedYou'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. View limit details
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: 🟡 Moderate · up to
|
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
b8494992-afa8-4bcf-bd59-49381b888ec7
📒 Files selected for processing: 2
.github/workflows/wsl-orcad-e2e.ymlsrc/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] |
There was a problem hiding this comment.
🩺 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>
e82d74a to
ea7b78a
Compare
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_profilefailed 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,~/.profilethat exists, which is what a login bash reads.Mechanism
container-rootfsjob exports thedebian:12andfedora:41image filesystems withdocker export(digest printed in the log) and uploads them as artifacts.wsl2job becomes a matrix. Container legs import only the systemd-off distro and installgit/procps(plusshadow-utils/util-linuxon Fedora) before creating theorcauser. 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.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).