From 9850b037a612ce4c0b3cb8c658217e182c1e3758 Mon Sep 17 00:00:00 2001 From: Postil Maintainer Date: Sat, 11 Jul 2026 00:26:37 +0000 Subject: [PATCH] Support musl targets for x86_64 and aarch64 architectures Add comprehensive musl target support to the release and CI workflows: - Extend release.yml to build aarch64-unknown-linux-musl in addition to existing x86_64-unknown-linux-musl - Add dedicated CI job to verify x86_64-unknown-linux-musl builds on every push/PR - Update README to document musl support and auto-detection in the installer script - Maintain existing non-musl targets (glibc, macOS) without disruption Musl binaries provide static-linked, Alpine-compatible releases for all supported architectures. --- .github/workflows/ci.yml | 12 ++++++++++++ .github/workflows/release.yml | 6 +++++- README.md | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0095575..ff5c003 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,18 @@ jobs: - run: cargo test --quiet - run: cargo build --quiet --release + musl: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + targets: x86_64-unknown-linux-musl + - name: Install musl toolchain + run: sudo apt-get update && sudo apt-get install -y musl-tools + - uses: Swatinem/rust-cache@v2 + - run: cargo build --quiet --release --target x86_64-unknown-linux-musl + bench: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 44ee534..688cb23 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,10 @@ jobs: musl: true - target: aarch64-unknown-linux-gnu os: ubuntu-24.04-arm + - target: aarch64-unknown-linux-musl + os: ubuntu-24.04-arm + # musl support for ARM64 targets Alpine and other musl-libc systems on ARM. + musl: true - target: x86_64-apple-darwin # macos-13 (the last plain Intel image) was retired in Dec 2025; # macos-15-intel is the designated replacement. @@ -75,7 +79,7 @@ jobs: if-no-files-found: error retention-days: 1 - # Single fan-in publisher: four matrix legs racing to create the same + # Single fan-in publisher: six matrix legs racing to create the same # release is a known 422 flake in action-gh-release. release: needs: build diff --git a/README.md b/README.md index 7f69471..7429841 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ curl -fsSL https://postil.dev/install.sh | sh cargo install --git https://github.com/postil-dev/postil-cli --locked ``` +Prebuilt binaries are available for Linux (x86_64 and aarch64), macOS (Intel and Apple Silicon), and glibc and musl libc variants. The installer script automatically detects your system and platform and downloads the appropriate binary. For Alpine Linux and other musl-libc systems, the installer provides statically linked musl binaries. + ## Quick start ```sh @@ -209,6 +211,10 @@ Postil reviews only the new commits, marks earlier findings whose code was chang resolved, and carries still-open findings forward so the gate cannot be cleared by pushing an unrelated commit. +Bitbucket incremental reviews are disabled unless +`POSTIL_ENABLE_BITBUCKET_INCREMENTAL=1` is set. Set it only after validating the +`/diff/{head}..{since}` compare path against the target Bitbucket deployment. + ## The envelope `--output-json` prints a stable versioned envelope (`summary`, `silent`, `findings`,