From 12ca1093e9977533fbf6b6ee17a6ab7c072330ea Mon Sep 17 00:00:00 2001 From: Tim Van Wassenhove Date: Sat, 30 Mar 2024 16:44:48 +0100 Subject: [PATCH] ci: build and publish more binaries upon release --- .github/workflows/binaries.yml | 68 ++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/binaries.yml diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml new file mode 100644 index 0000000..8618e40 --- /dev/null +++ b/.github/workflows/binaries.yml @@ -0,0 +1,68 @@ +name: "Publish binaries" + +permissions: + contents: write + +on: + release: + types: [published] + +env: + CARGO_INCREMENTAL: 0 + CARGO_NET_GIT_FETCH_WITH_CLI: true + CARGO_NET_RETRY: 10 + CARGO_TERM_COLOR: always + RUST_BACKTRACE: 1 + RUSTFLAGS: -D warnings + RUSTUP_MAX_RETRIES: 10 + +defaults: + run: + shell: bash + +jobs: + upload-assets: + name: ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - target: aarch64-unknown-linux-gnu + os: ubuntu-22.04 + - target: aarch64-unknown-linux-musl + os: ubuntu-22.04 + - target: aarch64-apple-darwin + os: macos-12 + - target: aarch64-pc-windows-msvc + os: windows-2022 + - target: x86_64-unknown-linux-gnu + os: ubuntu-22.04 + - target: x86_64-unknown-linux-musl + os: ubuntu-22.04 + - target: x86_64-apple-darwin + os: macos-12 + - target: x86_64-pc-windows-msvc + os: windows-2022 + - target: x86_64-unknown-freebsd + os: ubuntu-22.04 + timeout-minutes: 60 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - uses: taiki-e/setup-cross-toolchain-action@v1 + with: + target: ${{ matrix.target }} + if: startsWith(matrix.os, 'ubuntu') && !contains(matrix.target, '-musl') + - uses: taiki-e/install-action@cross + if: contains(matrix.target, '-musl') + - run: echo "RUSTFLAGS=${RUSTFLAGS} -C target-feature=+crt-static" >> "${GITHUB_ENV}" + if: endsWith(matrix.target, 'windows-msvc') + - uses: taiki-e/upload-rust-binary-action@v1 + with: + bin: qv + target: ${{ matrix.target }} + tar: all + zip: windows + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file