diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0683fc8..d5f0781 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -92,6 +92,9 @@ jobs: - runner: windows-2025 target: x86_64-pc-windows-msvc binary: cf-integration.exe + - runner: windows-11-arm + target: aarch64-pc-windows-msvc + binary: cf-integration.exe runs-on: ${{ matrix.runner }} permissions: attestations: write @@ -107,10 +110,23 @@ jobs: persist-credentials: false - name: Install Rust toolchain - run: rustup toolchain install 1.97.0 --profile minimal + shell: bash + env: + TARGET: ${{ matrix.target }} + run: rustup toolchain install 1.97.0 --profile minimal --target "$TARGET" - name: Build release binary - run: cargo build --release --locked --bin cf-integration + shell: bash + env: + TARGET: ${{ matrix.target }} + run: cargo build --release --locked --bin cf-integration --target "$TARGET" + + - name: Smoke test release binary + shell: bash + env: + BINARY: ${{ matrix.binary }} + TARGET: ${{ matrix.target }} + run: '"target/$TARGET/release/$BINARY" --help' - name: Package release binary shell: bash @@ -119,7 +135,7 @@ jobs: TARGET: ${{ matrix.target }} run: | mkdir -p dist/package - cp "target/release/$BINARY" dist/package/ + cp "target/$TARGET/release/$BINARY" dist/package/ archive="cf-integration-$TARGET.tgz" tar -C dist/package -czf "dist/$archive" "$BINARY" if command -v sha256sum >/dev/null; then diff --git a/README.md b/README.md index e576365..0836891 100644 --- a/README.md +++ b/README.md @@ -39,11 +39,11 @@ cargo binstall cf-integration cf-integration --help ``` -The release archives cover x86-64 and ARM64 Linux, x86-64 and Apple Silicon -macOS, and x86-64 Windows. `cargo-binstall` is required because Cargo's native -`cargo install` command always compiles a crate locally. The CLI still uses the -tracked Compose overlays and scripts at runtime, so run it from this repository -checkout or set `CF_INTEGRATION_ROOT` to the checkout path. +The release archives cover x86-64 and ARM64 Linux, macOS, and Windows. +`cargo-binstall` is required because Cargo's native `cargo install` command +always compiles a crate locally. The CLI still uses the tracked Compose overlays +and scripts at runtime, so run it from this repository checkout or set +`CF_INTEGRATION_ROOT` to the checkout path. The checked-in `rust-toolchain.toml` selects Rust 1.97.0 with rustfmt and Clippy. To build and install the locked CLI from this checkout instead: