contracts 0.6.9

Design-by-contract attributes
Documentation
name: Release

on:
  push:
    branches: [main]

permissions:
  contents: write
  pull-requests: write
  id-token: write

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          fetch-depth: 0

      - name: Install Rust
        uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0

      - name: Authenticate with crates.io
        uses: rust-lang/crates-io-auth-action@c6f97d42243bad5fab37ca0427f495c86d5b1a18 # v1.0.5
        id: auth

      - name: release-plz
        uses: MarcoIeni/release-plz-action@2eb1d8bcb770b4c48ccfaad919734b38b51958c9 # v0.5.131
        id: release-plz
        env:
          GITHUB_TOKEN: ${{ github.token }}
          CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}

      - name: Install Determinate Nix
        if: ${{ steps.release-plz.outputs.prs_created == 'true' || steps.release-plz.outputs.releases_created == 'true' }}
        uses: DeterminateSystems/determinate-nix-action@d96678350ffd6a456235832eb11e1c491589b7bb # v3.21.8
        with:
          extra-conf: lazy-trees = true

      - name: Set up FlakeHub Cache
        if: ${{ steps.release-plz.outputs.prs_created == 'true' || steps.release-plz.outputs.releases_created == 'true' }}
        uses: DeterminateSystems/flakehub-cache-action@77c6bddd7d747943530aaa578c57f233ee5d920e # v3.21.8

      - name: Enter Nix devshell
        if: ${{ steps.release-plz.outputs.prs_created == 'true' || steps.release-plz.outputs.releases_created == 'true' }}
        uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1

      - name: Bump changelog versions
        if: ${{ steps.release-plz.outputs.prs_created == 'true' }}
        env:
          GH_TOKEN: ${{ github.token }}
          RELEASE_PLZ_PR_JSON: ${{ steps.release-plz.outputs.pr }}
        run: x52-bump-changelogs

      - name: Update release notes
        if: ${{ steps.release-plz.outputs.releases_created == 'true' }}
        env:
          GH_TOKEN: ${{ github.token }}
          RELEASE_PLZ_RELEASES_JSON: ${{ steps.release-plz.outputs.releases }}
        run: x52-update-release-notes