name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test --release
- name: Build release binary
run: cargo build --release
- name: Generate documentation
run: cargo doc --no-deps
- name: Create release archive
run: |
tar -czf spectral_vm-${{ github.ref_name }}-x86_64-unknown-linux-gnu.tar.gz -C target/release spectral_vm
tar -czf spectral_vm-docs-${{ github.ref_name }}.tar.gz -C target/doc .
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: |
spectral_vm-${{ github.ref_name }}-x86_64-unknown-linux-gnu.tar.gz
spectral_vm-docs-${{ github.ref_name }}.tar.gz
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}