---
on:
workflow_dispatch:
push:
tags:
- v*
name: Release
defaults:
run:
shell: bash
permissions: {}
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Check out sources
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install Protoc
uses: cerbos/actions/install-tools@68b6dfbf9cc54c29a99f4bb9585af585fe6e12da with:
tools: protoc
- name: Install stable toolchain
uses: actions-rust-lang/setup-rust-toolchain@2b1f5e9b395427c92ee4e3331786ca3c37afe2d7 with:
cache: false
override: true
components: rustfmt, clippy
- name: Run cargo check
run: cargo check
- name: Authenticate with crates.io
id: auth
uses: rust-lang/crates-io-auth-action@bbd81622f20ce9e2dd9622e3218b975523e45bbe
- name: Publish
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}