fix(cli): parity-check was silently skipping every *_test binary #84
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
| name: install-matrix | |
| # Verifies `cargo install --git ... --branch cuda-only` works on the | |
| # distros documented in the README's "Verified install matrix" | |
| # section. Each job builds a stock distro container with the toolchain | |
| # the README recommends, then runs `cargo install --path .` against | |
| # the checked-out source. Catches regressions in build.rs / CMakeLists | |
| # / Cargo.lock that pass on the dev box (Arch + RTX 4090) but break | |
| # on the wider distro matrix. | |
| # | |
| # No actual GPU needed for build — nvcc compiles without one. The | |
| # binary won't run usefully in CI, but the install reaching | |
| # "Installed package `xchplot2`" is the assertion. | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| # Docs & metadata | |
| - '**.md' | |
| - 'docs/**' | |
| - 'LICENSE*' | |
| - '.gitignore' | |
| - '.gitattributes' | |
| - '.editorconfig' | |
| - '.markdownlint*' | |
| - '.github/dependabot.yml' | |
| - '.github/ISSUE_TEMPLATE/**' | |
| - '.github/PULL_REQUEST_TEMPLATE*' | |
| # Runtime / user-facing scripts not exercised by the install | |
| # matrix (CI calls `podman build` directly; these are host-side | |
| # wrappers and runtime tests). | |
| - 'scripts/test/**' | |
| - 'scripts/test-multi-gpu.sh' | |
| - 'scripts/build-container.sh' | |
| - 'scripts/install-container-deps.sh' | |
| # Sibling CI workflows — editing arch-matrix or the lint | |
| # workflow shouldn't drag in the install matrix. | |
| - '.github/workflows/ci.yml' | |
| - '.github/workflows/arch-matrix.yml' | |
| push: | |
| branches: [cuda-only] | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| - 'LICENSE*' | |
| - '.gitignore' | |
| - '.gitattributes' | |
| - '.editorconfig' | |
| - '.markdownlint*' | |
| - '.github/dependabot.yml' | |
| - '.github/ISSUE_TEMPLATE/**' | |
| - '.github/PULL_REQUEST_TEMPLATE*' | |
| - 'scripts/test/**' | |
| - 'scripts/test-multi-gpu.sh' | |
| - 'scripts/build-container.sh' | |
| - 'scripts/install-container-deps.sh' | |
| - '.github/workflows/ci.yml' | |
| - '.github/workflows/arch-matrix.yml' | |
| permissions: | |
| contents: read | |
| jobs: | |
| install: | |
| name: install / ${{ matrix.distro }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: | |
| - ubuntu2404-rustup # apt nvidia-cuda-toolkit + rustup | |
| - ubuntu2404-nvidia-apt # NVIDIA apt repo cuda-toolkit-12-9 | |
| - ubuntu2204-nvidia-apt # Kitware cmake + NVIDIA apt repo | |
| - debian12-kitware # Kitware cmake + NVIDIA apt repo | |
| - fedora41-nvidia-apt # NVIDIA dnf repo | |
| - rocky9-nvidia-apt # NVIDIA dnf repo (RHEL 9 family) | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Build base image | |
| run: | | |
| podman build \ | |
| -t xchplot2-ci:${{ matrix.distro }} \ | |
| -f ci/install-matrix/${{ matrix.distro }}.Containerfile \ | |
| ci/install-matrix/ | |
| - name: cargo install in container | |
| run: | | |
| podman run --rm \ | |
| -e CUDA_ARCHITECTURES=75 \ | |
| -v "$PWD":/src:ro,Z \ | |
| xchplot2-ci:${{ matrix.distro }} \ | |
| bash -c ' | |
| cp -r /src /work | |
| cd /work | |
| rm -rf target/ keygen-rs/target/ | |
| CARGO_TARGET_DIR=/tmp/cargo-target \ | |
| cargo install --path . --force 2>&1 | tail -20 | |
| test -x /root/.cargo/bin/xchplot2 | |
| echo "OK: xchplot2 installed for ${{ matrix.distro }}" | |
| ' |