name: Release
on:
push:
tags:
- "*"
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
release:
name: Release
runs-on: ubuntu-latest
container:
image: rust:latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs: test
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Publish
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }}