name: Release
permissions:
contents: write
on:
push:
tags:
- v[0-9]+.*
jobs:
release-format-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run format check
run: cargo fmt --check
create-release:
needs: release-format-check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/create-gh-release-action@v1
with:
changelog: CHANGELOG.md
token: ${{ secrets.GITHUB_TOKEN }}
cargo-publish:
needs: create-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Publish to crates.io
run: >
cargo publish
--all-features
--verbose
--token ${{ secrets.CARGO_REGISTRY_TOKEN }}