version: 2 before: hooks: - mkdir -p docs/man - sh -c 'CGO_ENABLED=0 go run -ldflags "-X github.com/trufflesecurity/trufflehog/v3/pkg/version.BuildVersion={{ .Version }}" . --generate-man-page > docs/man/trufflehog.1' release: # GoReleaser creates the GitHub release before artifacts finish uploading. # scripts/install.sh queries /releases/latest to find the current version, so # a premature "latest" flag causes install failures during the upload window. # The release workflow's mark-latest job promotes the release only after # GoReleaser completes successfully. make_latest: false builds: - id: trufflehog-upx binary: trufflehog ldflags: - -s -w -X 'github.com/trufflesecurity/trufflehog/v3/pkg/version.BuildVersion={{ .Version }}' env: [CGO_ENABLED=0] goos: - linux goarch: - amd64 - arm64 hooks: post: - upx -q "{{ .Path }}" - id: trufflehog binary: trufflehog ldflags: - -X 'github.com/trufflesecurity/trufflehog/v3/pkg/version.BuildVersion={{ .Version }}' env: [CGO_ENABLED=0] goos: - darwin - windows goarch: - amd64 - arm64 archives: - files: - LICENSE - README.md - docs/man/trufflehog.1 dockers: - image_templates: ["trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64"] dockerfile: Dockerfile.goreleaser extra_files: - entrypoint.sh use: buildx build_flag_templates: - --platform=linux/amd64 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - --label=org.opencontainers.image.url=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.source=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.revision={{ .FullCommit }} - --label=org.opencontainers.image.licenses=AGPL-3.0 - --provenance=false - image_templates: ["trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8"] goarch: arm64 dockerfile: Dockerfile.goreleaser extra_files: - entrypoint.sh use: buildx build_flag_templates: - --platform=linux/arm64/v8 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - --label=org.opencontainers.image.url=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.source=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.revision={{ .FullCommit }} - --label=org.opencontainers.image.licenses=AGPL-3.0 - --provenance=false - image_templates: ["ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64"] dockerfile: Dockerfile.goreleaser extra_files: - entrypoint.sh use: buildx build_flag_templates: - --platform=linux/amd64 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - --label=org.opencontainers.image.url=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.source=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.revision={{ .FullCommit }} - --label=org.opencontainers.image.licenses=AGPL-3.0 - --provenance=false - image_templates: ["ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8"] goarch: arm64 dockerfile: Dockerfile.goreleaser extra_files: - entrypoint.sh use: buildx build_flag_templates: - --platform=linux/arm64/v8 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - --label=org.opencontainers.image.url=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.source=https://github.com/trufflesecurity/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.revision={{ .FullCommit }} - --label=org.opencontainers.image.licenses=AGPL-3.0 - --provenance=false docker_manifests: - name_template: trufflesecurity/{{ .ProjectName }}:{{ .Version }} image_templates: - trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64 - trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8 - name_template: trufflesecurity/{{ .ProjectName }}:latest image_templates: - trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64 - trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8 - name_template: ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }} image_templates: - ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64 - ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8 - name_template: ghcr.io/trufflesecurity/{{ .ProjectName }}:latest image_templates: - ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-amd64 - ghcr.io/trufflesecurity/{{ .ProjectName }}:{{ .Version }}-arm64v8 brews: - repository: owner: trufflesecurity name: homebrew-trufflehog token: "{{ .Env.HOMEBREW_TAP_TOKEN }}" description: "Find credentials all over the place" name: "trufflehog" homepage: "https://github.com/trufflesecurity/trufflehog" install: | bin.install "trufflehog" extra_install: | man1.install "docs/man/trufflehog.1" signs: - cmd: cosign signature: "${artifact}.sig" certificate: "${artifact}.pem" args: - "sign-blob" - "--oidc-issuer=https://token.actions.githubusercontent.com" - "--output-certificate=${certificate}" - "--output-signature=${signature}" - "${artifact}" - "--yes" artifacts: checksum