我正在编写一个使用cmake的库。我已经设置了构建以添加make
目标来构建Debian源包,然后我可以使用dput
上传到Launchpad以创建Ubuntu PPA。此过程的一部分是使用我的gpg
密钥对包进行签名。当我在登录普通X会话时运行此make
目标时,会弹出一个框,询问我gpg
密码短语。
我想让Jenkins自动执行此操作以上传每日快照构建。问题是如何让Jenkins自动签署包。我见过类似的问题,但他们从未真正回答过我正在寻找的问题。
我假设我需要运行gpg-agent
来处理这个问题,但以下是我不理解的事情:
1。)Jenkins在jenkins
用户下运行。如何为此用户运行gpg-agent
。我已经看到eval $(gpg-agent --daemon)
可以放在一个shell脚本启动文件中,但这不会被Jenkins采购。
2.。)如何让gpg-agent
知道我的密码。如果我使用jenkins
登录sudo su - jenkins
用户,我可以使用gpg
解密文件,但会弹出pinentry-curses
并询问我的密码。怎么会从詹金斯处理。我想输入一次密码并记住它。
答案 0 :(得分:0)
1)你能使用gpg-agent
的绝对路径吗?也许我没跟你说对..
2)你应该使用--passphrase-fd 0
作为gpg的参数(就像那样:echo password | gpg --passphrase-fd 0 --decrypt / --encrypt
)。更多信息here。