name: Release
on:
push:
tags: ["v*"]
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: build (${{ matrix.target }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
zigbuild: --target x86_64-unknown-linux-gnu.2.17
- target: aarch64-unknown-linux-gnu
zigbuild: --target aarch64-unknown-linux-gnu.2.17
steps:
- uses: actions/checkout@v7
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install cargo-zigbuild
run: pip install cargo-zigbuild
- name: Build (glibc 2.17)
run: cargo zigbuild --release ${{ matrix.zigbuild }}
- name: Package
run: |
version="${GITHUB_REF_NAME#v}"
dir="pkq-${version}-${{ matrix.target }}"
mkdir -p "$dir"
cp "target/${{ matrix.target }}/release/pkq" "$dir/"
cp README.md "$dir/"
tar czf "pkq-${version}-${{ matrix.target }}.tar.gz" "$dir"
sha256sum "pkq-${version}-${{ matrix.target }}.tar.gz" > "pkq-${version}-${{ matrix.target }}.tar.gz.sha256"
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: dist-${{ matrix.target }}
path: |
pkq-*.tar.gz
pkq-*.tar.gz.sha256
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v8
with:
merge-multiple: true
- name: Download install.sh
run: curl -sSfL -o install.sh "https://raw.githubusercontent.com/${GITHUB_REPOSITORY}/${GITHUB_REF_NAME}/install.sh"
- name: Create release
uses: softprops/action-gh-release@v3
with:
files: |
pkq-*
install.sh
generate_release_notes: true