name: Release
permissions:
pull-requests: write
contents: write
on:
push:
branches:
- main
env:
SCCACHE_GHA_ENABLED: true
RUSTC_WRAPPER: sccache
jobs:
release:
name: Release
runs-on: ubuntu-24.04-arm
environment:
name: crates-io
steps:
- uses: actions/create-github-app-token@v2
id: token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ steps.token.outputs.token }}
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: cargo-
- uses: mozilla-actions/sccache-action@v0.0.9
- uses: MarcoIeni/release-plz-action@v0.5.118
with:
command: release
env:
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
pr:
name: PR
runs-on: ubuntu-24.04-arm
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false
steps:
- uses: actions/create-github-app-token@v2
id: token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ steps.token.outputs.token }}
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: cargo-
- uses: mozilla-actions/sccache-action@v0.0.9
- uses: MarcoIeni/release-plz-action@v0.5.118
with:
command: release-pr
env:
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}