fix(ci): make vcan0 unavailability a loud warning, not a silent notice - #70
Open
SoundMatt wants to merge 1 commit into
Open
fix(ci): make vcan0 unavailability a loud warning, not a silent notice#70SoundMatt wants to merge 1 commit into
SoundMatt wants to merge 1 commit into
Conversation
test-socketcan and can-interop have skipped their real workload on every recent CI run because vcan0 setup fails on GitHub-hosted runners — confirmed root cause via a throwaway diagnostic run: "modprobe: FATAL: Module vcan not found in directory /lib/modules/<runner kernel>". The vcan kernel module is genuinely absent from the GitHub-hosted ubuntu-latest runner image; this is not a sudo/capability/ordering issue modprobe flags can work around, and cannot be fixed from within the workflow. A real fix would require a self-hosted runner with a vcan-capable kernel, which is out of scope here. Since the underlying environment gap is infeasible to fix from CI, make the skip itself loud instead of leaving it invisible: replace the `::notice::` (easy to miss) with a `::warning::` annotation plus a `$GITHUB_STEP_SUMMARY` banner explaining exactly why and what it means, so "this job is green" is never silently mistaken for "the socketcan/interop code path actually ran". Expanded both jobs' header comments with the confirmed root cause for future readers. Closes #56 Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
`test-socketcan` and `can-interop` have skipped their real workload on every recent CI run because `vcan0` setup fails on GitHub-hosted runners — over 1000 lines of real wire-protocol code have never executed in CI despite the jobs reporting green.
Root cause (confirmed)
Ran a throwaway diagnostic branch/PR (#67, closed without merging) that removed the `2>/dev/null` suppression on `modprobe`. The actual error:
```
modprobe: FATAL: Module vcan not found in directory /lib/modules/6.17.0-1020-azure
```
The `vcan` kernel module is genuinely absent from the GitHub-hosted `ubuntu-latest` runner image's kernel — this is not a permissions, capability, or command-ordering issue that `sudo`/flags can work around. It cannot be fixed from within the workflow. A real fix would require a self-hosted runner with a vcan-capable kernel, which is a much larger infrastructure change out of scope for this fix.
Fix
Since the underlying environment gap is genuinely infeasible to fix from CI, make the skip itself loud instead of leaving it invisible:
A green check on either job now cannot be silently mistaken for "the socketcan/interop code actually ran" — anyone glancing at the run summary or annotations sees the warning immediately.
Testing
`go build ./...` / `go vet ./...` pass (workflow-only change). YAML validated with `python3 -c "import yaml; yaml.safe_load(...)"`. The warning/summary behavior itself was verified live via the diagnostic PR #67's actual run.
Closes #56