name: Release-plz on: push: branches: - main jobs: # Release unpublished packages. release-plz-release: name: Release-plz release runs-on: ubuntu-latest environment: crates_io permissions: contents: write id-token: write # For trusted publishing steps: - &checkout name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 0 persist-credentials: false - &install-rust name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Run release-plz id: release-plz uses: release-plz/action@v0.5 with: command: release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Trigger workflows if: steps.release-plz.outputs.releases_created == 'true' run: | gh api repos/${{ github.repository }}/dispatches \ -f "event_type=release-created" \ -F "client_payload[tag]=${{ fromJSON(steps.release-plz.outputs.releases)[0].tag }}" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Create a PR with the new versions and changelog, preparing the next release. release-plz-pr: name: Release-plz PR runs-on: ubuntu-latest permissions: contents: write pull-requests: write concurrency: group: release-plz-${{ github.ref }} cancel-in-progress: false steps: - *checkout - *install-rust - name: Run release-plz uses: release-plz/action@v0.5 with: command: release-pr env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}