name: Publish
on:
push:
tags:
- '*'
permissions:
contents: write
jobs:
linux-gnu:
runs-on: ubuntu-latest
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
targets: x86_64-unknown-linux-gnu
- uses: goto-bus-stop/setup-zig@v2
- name: Install cargo-zigbuild
run: cargo install cargo-zigbuild
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
run: cargo zigbuild --verbose --release --target x86_64-unknown-linux-gnu.2.17
- name: Create tarball
run: tar cvfz intspan.tar.gz --transform 's|.*/||' target/x86_64-unknown-linux-gnu/release/spanr target/x86_64-unknown-linux-gnu/release/rgr target/x86_64-unknown-linux-gnu/release/linkr
shell: bash
- name: Upload binaries to releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: intspan.tar.gz
asset_name: intspan-x86_64-unknown-linux-gnu.tar.gz
tag: ${{ github.ref }}
overwrite: true
linux-musl:
runs-on: ubuntu-latest
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
targets: x86_64-unknown-linux-musl
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
run: cargo build --verbose --release --target x86_64-unknown-linux-musl
- name: Create tarball
run: tar cvfz intspan.tar.gz --transform 's|.*/||' target/x86_64-unknown-linux-musl/release/spanr target/x86_64-unknown-linux-musl/release/rgr target/x86_64-unknown-linux-musl/release/linkr
shell: bash
- name: Upload binaries to releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: intspan.tar.gz
asset_name: intspan-x86_64-unknown-linux-musl.tar.gz
tag: ${{ github.ref }}
overwrite: true
macos:
runs-on: macOS-latest
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
env:
MACOSX_DEPLOYMENT_TARGET: 10.12
run: cargo build --verbose --release
- name: Create tarball
run: |
cd target/release
tar cvfz ../../intspan.tar.gz spanr rgr linkr
shell: bash
- name: Upload binaries to releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: intspan.tar.gz
asset_name: intspan-x86_64-apple-darwin.tar.gz
tag: ${{ github.ref }}
overwrite: true
windows:
runs-on: windows-latest
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Enable static CRT linkage
run: |
mkdir .cargo
echo '[target.x86_64-pc-windows-msvc]' >> .cargo/config
echo 'rustflags = ["-Ctarget-feature=+crt-static"]' >> .cargo/config
- name: Build
run: cargo build --verbose --release
- name: Create zip
run: Compress-Archive -DestinationPath ./intspan.zip -Path ./target/release/spanr.exe,./target/release/rgr.exe,./target/release/linkr.exe
shell: powershell
- name: Upload binaries to releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: intspan.zip
asset_name: intspan-x86_64-pc-windows-msvc.zip
tag: ${{ github.ref }}
overwrite: true