name: Release
on:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
bump:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Config git
run: git config user.name github_actions && git config user.email nil
- name: Install cargo-workspaces
run: cargo install cargo-workspaces
- name: BUMP!
run: cargo ws version patch -y
binary:
runs-on: ubuntu-latest
needs: bump
steps:
- uses: actions/checkout@v4
- name: Release binary
uses: rust-build/rust-build.action@v1.4.5
publish:
runs-on: ubuntu-latest
needs: bump
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- name: Get latest commit
run: git pull
- name: Authenticate to crates.io
uses: rust-lang/crates-io-auth-action@v1.0.5
id: auth
- name: Publish to crates.io
run: cargo publish --workspace
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}