name: publish on: pull_request: branches: - main push: branches: - main permissions: contents: read # Needed to checkout the repository. concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ github.sha }}" cancel-in-progress: true jobs: artifacts: name: artifacts permissions: contents: write # Needed to upload artifacts. id-token: write # Needed for attestation. attestations: write # Needed for attestations. runs-on: ubuntu-latest steps: - name: harden runner uses: step-security/harden-runner@e3f713f2d8f53843e71c69a996d56f51aa9adfb9 # v2.14.1 with: egress-policy: audit - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: 'install rust toolchain' run: | cargo version - name: 'assemble artifacts' run: ./hack/assemble.sh - name: 'upload artifacts' id: upload uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: artifacts path: target/assemble/* - name: 'attest artifacts' uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0 with: subject-name: artifacts.zip subject-digest: "sha256:${{ steps.upload.outputs.artifact-digest }}" if: github.event_name != 'pull_request'