ci: add extra-test-os input to rust-ci#23
Merged
Conversation
Lets a caller run the test job on additional runner images (JSON array, default []) without touching the existing Test job, whose check name is required by branch rulesets. First consumer: podup's macOS support. Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
This was referenced Jun 5, 2026
Jaro-c
added a commit
to Glyndor/podup
that referenced
this pull request
Jun 5, 2026
Closes #43 ## What - **Socket resolution per platform** (`internal/podman/mod.rs`): auto-detection now probes a candidate list and picks the first socket that exists. Linux keeps the rootful (`/run/podman/podman.sock`) and per-user runtime paths, now honoring `XDG_RUNTIME_DIR`; macOS probes the host-side sockets `podman machine` creates (stable layout, qemu, per-machine) and falls back to `podman machine inspect --format '{{ .ConnectionInfo.PodmanSocket.Path }}'` when no known layout matches. Explicit `--socket` / `PODMAN_SOCKET` / `DOCKER_HOST` still win. - **Release**: `aarch64-apple-darwin` and `x86_64-apple-darwin` join the build matrix (both on `macos-latest`; x86_64 cross-compiled). New assets `podup-darwin-arm64` / `podup-darwin-x86_64` with `.sig` and attestations. Linux asset names unchanged — darwin assets are additions to the `install.sh` naming contract. - **install.sh**: Darwin detection, `shasum -a 256` fallback (macOS ships no `sha256sum`). - **README**: install section mentions macOS. The staging code in `internal/engine/volume.rs` is already macOS-correct: it is plain unix (`geteuid`, `chown`, mode 0700) and `XDG_RUNTIME_DIR` being unset on macOS lands on the verified `temp_dir()/podup-<euid>` fallback. CI on `macos-latest` lands separately: Glyndor/.github#23 adds an `extra-test-os` input to the reusable workflow; the pin bump follows once that reaches `main`. ## Test plan - `cargo test --workspace` — 222 tests green, including new unit tests for candidate ordering, XDG preference/dedupe and first-existing selection - `cargo clippy --all-targets --all-features` — clean - `cargo check --target aarch64-apple-darwin --all-targets` and `--target x86_64-apple-darwin --all-targets` — the whole crate, tests included, compiles for both darwin targets - `bash -n install.sh` — syntax OK; `lint-shell` workflow shellchecks it in CI - Real `podman machine` smoke test on macOS hardware pending (no Apple machine in the VM matrix) — tracked before tagging the next release --------- Signed-off-by: Jaro-c <75870284+Jaro-c@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.
Closes #22
Adds an
extra-test-osinput to the reusable Rust workflow: a JSON array of additional runner images (default[]). A matrixedTest (<os>)job mirrors the existingTestjob on each image and is skipped entirely when the array is empty.The existing
Testjob is untouched, so its check name — required by branch rulesets in consumer repos — does not change, and current callers see no difference.First consumer: Glyndor/podup#43 (macOS support) will pass
extra-test-os: '["macos-latest"]'.Test plan
extra-test-osdefaults to[]→test-extraskipped (job-levelif)