name: Release
on:
push:
tags:
- 'v*'
env:
CARGO_TERM_COLOR: always
permissions:
contents: write
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.release.outputs.upload_url }}
steps:
- uses: actions/checkout@v4
- name: Create Release
id: release
uses: softprops/action-gh-release@v2
with:
name: ${{ github.ref_name }}
draft: true
generate_release_notes: true
build-musl:
name: Build ${{ matrix.target }}
needs: create-release
runs-on: ubuntu-latest
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Add musl target
run: rustup target add ${{ matrix.target }}
- name: Install zig
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.11.0
- name: Install zigbuild
run: cargo install cargo-zigbuild
- name: Cache
uses: Swatinem/rust-cache@v2
- name: Build
run: cargo zigbuild --release --target ${{ matrix.target }}
- name: Strip & Prepare
run: |
strip target/${{ matrix.target }}/release/createrepo_rs
cp target/${{ matrix.target }}/release/createrepo_rs createrepo_rs-${{ matrix.target }}
- name: Upload
uses: softprops/action-gh-release@v2
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
files: createrepo_rs-${{ matrix.target }}