Skip to main content

Binaries & Archives

Sign artifacts with GPG or cosign

Anodizer can sign your release artifacts using GPG or cosign.

Minimal config

signs:
  - artifacts: all
    cmd: gpg
    args: ["--batch", "--local-user", "{{ Env.GPG_KEY_ID }}", "--output", "${signature}", "--detach-sig", "${artifact}"]

Sign config fields

FieldTypeDefaultDescription
idstringnoneIdentifier for this signing config
artifactsstringnoneWhat to sign: none, all, archive, binary, package, checksum
cmdstringSigning command (e.g., gpg, cosign)
argslistArguments (supports templates; ${artifact} and ${signature} are special)
signaturestring${artifact}.sigSignature file path template
stdinstringnoneString to pipe to stdin
stdin_filestringnoneFile to pipe to stdin
idslistnoneOnly sign artifacts matching these IDs

Cosign example

signs:
  - artifacts: checksum
    cmd: cosign
    args: ["sign-blob", "--key=cosign.key", "--output-signature=${signature}", "${artifact}"]

Multiple signing configs

signs:
  - id: gpg
    artifacts: archive
    cmd: gpg
    args: ["--batch", "--detach-sig", "--output", "${signature}", "${artifact}"]
  - id: cosign
    artifacts: checksum
    cmd: cosign
    args: ["sign-blob", "--key=cosign.key", "--output-signature=${signature}", "${artifact}"]