name: Release Please
on:
push:
branches: [main]
workflow_dispatch: {}
permissions:
contents: read
concurrency:
group: release-please
cancel-in-progress: false
jobs:
release-please:
name: Release Please
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: write
pull-requests: write
steps:
- uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 with:
egress-policy: audit
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 id: release
with:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 if: steps.release.outputs.release_created == 'true'
with:
ref: ${{ steps.release.outputs.tag_name }}
persist-credentials: false
- uses: dtolnay/rust-toolchain@02cb101ec7c40f2c49e1d9714d64511d8e1b74de if: steps.release.outputs.release_created == 'true'
with:
toolchain: "1.95"
- name: Publish to crates.io
if: steps.release.outputs.release_created == 'true'
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish --locked