name: Release
on:
push:
tags:
- 'v*.*.*'
env:
NAME: blackhole
jobs:
create_github_release:
name: Create Github release
runs-on: ubuntu-latest
steps:
- name: Setup code
uses: actions/checkout@v3
with: { fetch-depth: 0 }
- name: Create release
id: create_release
run: gh release create ${{ github.ref_name }} --generate-notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build_and_publish:
name: Build and publish
needs: [create_github_release]
strategy:
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: aarch64-apple-darwin
os: macos-latest
runs-on: ${{ matrix.os }}
steps:
- name: Setup code
uses: actions/checkout@v3
- name: Setup Rust toolchain
run: |
rustup set profile minimal
rustup install stable
rustup override set stable
rustup target add ${{ matrix.target }}
- name: Build
run: cargo build --release --target=${{ matrix.target }}
- name: Create artifact
run: |
tar -acvf ${{ env.NAME }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz -C target/${{ matrix.target }}/release ${{ env.NAME }}
set -e
ls -la ${{ env.NAME }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
- name: Upload assets
run: gh release upload ${{ github.ref_name }} ./${{ env.NAME }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}