2012-11-23 82 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