我的代码存放在Mercurial存储库中(使用自签名证书保护),我正在尝试设置Jenkins来使用它。
我已经在Jenkins中安装了Mercurial插件(指向在Jenkins服务器/从服务器上安装了TortoiseHg)并且Jenkins Job已正确配置为从存储库中获取源代码。
当我手动构建(即通过Web界面)时,一切都按预期工作。
但是,看起来存储库的轮询没有成功,因为我得到的输出类似于以下内容:
Started on Apr 27, 2012 1:07:41 PM
[<jobname>] $ hg pull --rev default
warning: <MercurialServerIP> certificate with fingerprint e3:5f:5e:ea:4f:da:ef:a4:0b:4a:bb:00:e8:31:59:de:ce:d0:28:94 not verified (check hostfingerprints or web.cacerts config setting)
abort: mercurial_keyring: http authorization required but program used in non-interactive mode
[<jobname>] $ hg log --style <workspace>\<jobname>\tmp688470509422797505style --branch default --no-merges --prune 65d180b20a1e625841c8385709c86b83c3e10421
Done. Took 1.9 sec
No changes
我之前已经完成了存储库的手动克隆,这样我就可以输入用户的密码来使用Mercurial密钥环扩展来进行授权,但根据错误输出,它似乎并不像是应用
如何配置Jenkins或运行构建的计算机成功进行轮询?
答案 0 :(得分:3)
这可能不是解决问题的最佳方式,但它对我有用,我可以继续前进。
我能够弄清楚如何让服务器在我的设置中记住密码的唯一方法是在\ mercurial.ini中手动指定。
注意:您可能还必须从mercurial.ini中删除mercurial_keyring行。 (这会禁用密钥环扩展,因为我们手动指定了所有内容。)
我以前认为在服务器上克隆一次存储库会让它记住密码,但这似乎不适用于Jenkins中的轮询功能(尽管它在执行时确实适用于我的实际构建脚本在服务器上。)
我对在服务器上以纯文本输入密码并不是特别满意,但在找到更好的方法让轮询工作之前,我可以忍受这个。
答案 1 :(得分:0)
使用“kilnauth extension”,您可以将凭据存储在您的计算机上。这样您就不必在Jenkins上配置任何特殊内容。
$ hg help kilnauth
kilnauth extension - stores authentication cookies for HTTP
repositories. This extension knows how to capture Kiln
authentication tokens when pushing over HTTP.
This means you only need to enter your login and password once;
after that, the FogBugz token will be stored in your home
directory, allowing pushing without a password.
有关如何安装的说明,请按照:http://kiln.stackexchange.com/questions/341/how-can-i-install-kilns-mercurial-extensions-manually
进行操作