Context:这是我正在使用的GoReleaser项目。
如何重现:
.release_env
:GOPATH="..."
GPG_FINGERPRINT="..."
GPG_PASSWORD="..."
GPG_KEY="..."
其中
GPG_KEY
是GPG_PRIVATE_KEY
但这个项目称它为GPG_KEY
:
GPG_KEY(可选)- 默认为 /secrets/key.gpg。如果找不到文件则忽略
docker run \
--rm \
--env-file .release-env \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-v `pwd`/sysroot:/sysroot \
-w /go/src/$(PACKAGE_NAME) \
goreleaser/goreleaser-cross:v1.20 \
--rm-dist --skip-validate --skip-publish --debug
然后你会看到:
• signing artifact=my-app_2.0_SHA256SUMS cmd=gpg signature=dist/terraform-provider-confluent-internal_1.34.111111_SHA256SUMS.sig
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: skipped "FOOFOOFOOFOOFOOFOOFOOFOO": No secret key
gpg: signing failed: No secret key
⨯ release failed after 51s
其中
"FOOFOOFOOFOOFOOFOOFOOFOO"
的值为 GPG_FINGERPRINT
变量。
我的想法:
GPG_PUBLIC_KEY
而不是GPG_PRIVATE_KEY
GPG_KEY
。基于this代码似乎使用GPG_PRIVATE_KEY
是正确的想法。--debug
模式 - 已经做到了,但没有太大帮助。在这一点上我没有想法。