Commit 37ce75f
authored
feat(ci): package-registry provenance (#94)
## Cargo package-registry provenance
crates.io has no native OIDC/trusted-publishing provenance, so this
attests the **built `.crate`** via GitHub build-provenance attestation.
### Changes to \`.github/workflows/publish.yml\` (additive only)
- Added \`id-token: write\` and \`attestations: write\` to the
\`publish\` job permissions (kept existing \`contents: read\`).
- Added a real \`cargo package\` step (the workflow previously only ran
\`cargo package --list\`, which does not emit a \`.crate\` artifact) so
\`target/package/echidnabot-<ver>.crate\` exists.
- Added
\`actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be
# v2\` to attest \`target/package/*.crate\`, placed before publish.
### Notes
- Single-crate package (\`echidnabot\`), default manifest path, no
workspace / custom working-directory — \`cargo package\` cleanly
produces \`target/package/echidnabot-0.1.0.crate\`.
- Publish flow (dry-run vs real on tag) is unchanged.
- Pre-existing caveat (out of scope, not touched): \`Cargo.toml\`
carries a path dependency on \`../../shared-context\` that only resolves
inside the gitbot-fleet monorepo; the publish workflow's standalone
\`cargo build\`/\`cargo package\` already depends on that being
resolvable. No regression introduced here.1 parent 2eb9e0c commit 37ce75f
1 file changed
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
| |||
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
49 | 57 | | |
50 | 58 | | |
51 | 59 | | |
| |||
0 commit comments