2012-11-23 46 views
1

我正在编写一个使用cmake的库。我已经设置好了构建一个make目标,该目标构建了一个Debian源代码包,然后我可以使用dput上传到Launchpad以创建一个Ubuntu PPA。此过程的一部分是使用我的gpg密钥签署包裹。当我登录到正常的X会话时运行这个make目标时,它弹出一个框,要求我输入我的gpg密码。从Jenkins自动签名构建工件

我想让詹金斯自动执行此操作来上传每日快照构建。问题是如何让詹金斯自动签署包裹。我见过类似的问题,但他们从来没有真正回答我在找什么。

我想我需要运行gpg-agent来处理这一点,但这里有事情,我不明白:

1)詹金斯下jenkins用户运行。我如何为此用户运行gpg-agent。我已经看到eval $(gpg-agent --daemon)可以放在shell脚本启动文件中,但不会由Jenkins提供。如何使gpg-agent知道我的密码。如果我使用sudo su - jenkins登录到jenkins用户,我可以使用gpg来解密文件,但它会弹出pinentry-curses并要求输入我的密码。 Jenkins如何处理这个问题。我想输入一次密码并记住它。

回答

0

1)你可以使用绝对路径gpg-agent?也许我没有帮到你..

2)你应该使用--passphrase-fd 0作为gpg的参数(如:echo password | gpg --passphrase-fd 0 --decrypt/--encrypt)。更多信息here