Skip to content

chore(main): release cachekit-core 0.2.1 (#38) #25

chore(main): release cachekit-core 0.2.1 (#38)

chore(main): release cachekit-core 0.2.1 (#38) #25

Workflow file for this run

name: Release
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
jobs:
release-please:
runs-on: cachekit
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: googleapis/release-please-action@8b8fd2cc23b2e18957157a9d923d75aa0c6f6ad5 # v4
id: release
with:
token: ${{ steps.app-token.outputs.token }}
publish:
needs: release-please
if: ${{ needs.release-please.outputs.release_created }}
runs-on: cachekit
permissions:
contents: read
id-token: write
attestations: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
- name: Cache cargo registry
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- name: Run tests before publish
run: cargo test --all-features
- name: Package crate
run: cargo package
- name: Attest Build Provenance
uses: actions/attest-build-provenance@96b4a1ef7235a096b17240c259729fdd70c83d45 # v2
with:
subject-path: target/package/*.crate
- name: Install cargo-sbom
run: cargo install cargo-sbom --locked
- name: Generate SBOM
run: |
cargo sbom --output-format cyclone_dx_json_1_6 > sbom.cdx.json
test -s sbom.cdx.json || { echo "::error::SBOM file is empty"; exit 1; }
- name: Attest SBOM
uses: actions/attest-sbom@10926c72720ffc3f7b666661c8e55b1344e2a365 # v2
with:
subject-path: target/package/*.crate
sbom-path: sbom.cdx.json
- name: Publish to crates.io
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}