name: Release
on:
push:
branches: [main]
workflow_dispatch:
inputs:
publish_only:
description: "Skip release-please, run publish directly (for retrying failed publishes)"
type: boolean
default: false
permissions:
contents: write
pull-requests: write
env:
CARGO_TERM_COLOR: always
jobs:
release-please:
name: Release Please
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
steps:
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 id: release
with:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
publish:
name: Publish to crates.io
runs-on: ubuntu-latest
needs: release-please
if: |
needs.release-please.outputs.releases_created == 'true' ||
inputs.publish_only == true
environment: crates-io
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6
- name: Publish cli-engine
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
run: cargo publish