我已经将代码保存在Mercurial存储库中(通过自签名证书进行保护),并且我试图设置Jenkins来使用它。
我已经在Jenkins中安装了Mercurial插件(指向在Jenkins Server / Slaves上安装了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或运行内部版本的机器成功进行轮询?
这可能不是解决该问题的 最佳 方法,但是它对我有用,并且我可以继续。
我能够弄清楚如何让服务器记住设置中的密码的唯一方法是在\ mercurial.ini中手动指定密码。
注意:您可能还必须从mercurial.ini中删除mercurial_keyring行。(由于我们是手动指定所有内容,因此这会禁用密钥环扩展名。)
我以前曾相信,在服务器上克隆一次存储库会让它记住密码,但这似乎不适用于Jenkins的轮询功能(尽管在服务器上执行时,它确实适用于我的实际构建脚本) )。
我对在服务器上使用纯文本格式的密码并不感到特别满意,但是直到找到一种更好的方法来使轮询工作时,我才能对此感到满意。