name: Release
on:
push:
tags: ["v*"]
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
suffix: macos-aarch64
target: aarch64-apple-darwin
- os: macos-14
suffix: macos-x86_64
target: x86_64-apple-darwin
- os: ubuntu-22.04
suffix: linux-x86_64
target: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install Linux build deps
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y cmake pkg-config libssl-dev clang
- name: Cargo build
run: cargo build --release --locked --target ${{ matrix.target }}
- name: Package tarball
run: |
BIN="target/${{ matrix.target }}/release/apollo"
strip "$BIN" 2>/dev/null || true
tar czvf "apollo-${{ matrix.suffix }}.tar.gz" -C "target/${{ matrix.target }}/release" apollo
- uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.suffix }}
path: apollo-${{ matrix.suffix }}.tar.gz
publish:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
pattern: dist-*
merge-multiple: true
- name: Flatten artifacts
run: |
mkdir -p release-assets
find artifacts -name '*.tar.gz' -exec cp {} release-assets/ \;
ls -la release-assets/
- uses: softprops/action-gh-release@v2
with:
files: release-assets/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}