name: release on: push: branches: - main pull_request: concurrency: group: release-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: release: permissions: id-token: write runs-on: ubuntu-latest environment: ${{ github.ref == 'refs/heads/main' && 'release' || '' }} steps: - uses: actions/checkout@v6 with: submodules: true - uses: swatinem/rust-cache@v2 - run: cargo install cargo-workspaces - uses: rust-lang/crates-io-auth-action@v1 id: auth if: github.ref == 'refs/heads/main' - run: > cargo workspaces publish -y --from-git --no-verify ${{ github.ref != 'refs/heads/main' && '--dry-run' || '' }} env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}