name: Release
on:
push:
tags:
- "v*"
env:
CARGO_TERM_COLOR: always
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache cargo registry
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index
uses: actions/cache@v3
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo build
uses: actions/cache@v3
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
- name: Build release
run: cargo make build-release
- name: Run tests
run: cargo make test
- name: Create release archives
run: |
cargo make package
mkdir -p release
cp target/release/rgen release/
tar -czf rgen-${{ github.ref_name }}-linux-x86_64.tar.gz -C release rgen
- name: Upload release assets
uses: actions/upload-artifact@v3
with:
name: rgen-${{ github.ref_name }}-linux-x86_64
path: rgen-${{ github.ref_name }}-linux-x86_64.tar.gz