Skip to content

ci: add extra-test-os input to rust-ci#23

Merged
Jaro-c merged 1 commit into
developfrom
feat/rust-ci-extra-test-os
Jun 5, 2026
Merged

ci: add extra-test-os input to rust-ci#23
Jaro-c merged 1 commit into
developfrom
feat/rust-ci-extra-test-os

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Jun 5, 2026

Copy link
Copy Markdown
Member

Closes #22

Adds an extra-test-os input to the reusable Rust workflow: a JSON array of additional runner images (default []). A matrixed Test (<os>) job mirrors the existing Test job on each image and is skipped entirely when the array is empty.

The existing Test job 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

  • Default callers: extra-test-os defaults to []test-extra skipped (job-level if)
  • podup's branch will exercise the populated path once the pin is bumped

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>
@Jaro-c Jaro-c added effort:S A few hours prio:P1 High status:review Waiting for review type:ci CI/CD and automation labels Jun 5, 2026
@Jaro-c Jaro-c merged commit cb0b29b into develop Jun 5, 2026
@Jaro-c Jaro-c deleted the feat/rust-ci-extra-test-os branch June 5, 2026 23:33
Jaro-c added a commit that referenced this pull request Jun 5, 2026
Promotes develop to main:

- #23 — `extra-test-os` input on the reusable Rust workflow (Closes #22
follow-through; consumer repos pin to the resulting main SHA)

No behavior change for existing callers: the input defaults to `[]` and
the new `Test (<os>)` job is skipped when empty.
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort:S A few hours prio:P1 High status:review Waiting for review type:ci CI/CD and automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant