我们使用Mercurial(hg)进行源控制,并使用中央存储库(每个开发人员也有自己的本地存储库)。我正试图在中央仓库设置一个钩子,以便启动Jenkins CI构建。
钩子在hgrc文件中显示为:
[hooks]
incoming.jenkins = java -jar C:/buildServerJar/jenkins-cli.jar -s http://ctc-jenkins:8080/ -i C:/buildServerJar/id_rsa build "All Working Projects"
[ui]
verbose = True
debug = True
现在,我已经测试了从托管中央存储库的机器的命令行上的钩子调用的命令,它按预期工作。
但是,当我通过推送到中央存储库触发钩子时,我看到以下输出:
% hg --repository D:\dev\hg\******\source push W:\Repository\*********
pushing to W:\Repository\**********
searching for changes
adding changesets
add changeset 62784303122b
adding manifests
adding file changes
adding ****/CMakeLists.txt revisions
added 1 changesets with 1 changes to 1 files
updating the branch cache
running hook incoming.jenkins: java -jar C:/buildServerJar/jenkins-cli.jar -s http://ctc-jenkins:8080/ -i C:/buildServerJar/id_rsa build "All Working Projects"
warning: incoming.jenkins hook exited with status 1
[command completed successfully Fri Jul 26 15:24:58 2013]
有问题的服务器是Windows机器。任何想法可能出错或如何获得有关错误的更多细节?
更新:
所以我修改了钩子以获取更多信息:
incoming.jenkins = java -jar C:/buildServerJar/jenkins-cli.jar -s http://ctc-jenkins:8080/ -i C:/buildServerJar/id_rsa build "All Working Projects" > hg_output.log 2> hg_errors.log
它说它无法找到jar文件,这显然位于指示的位置。让我想知道它是否是权限问题。有谁知道Mercurial在哪个用户帐户下运行它的钩子?
Error: Unable to access jarfile C:/buildServerJar/jenkins-cli.jar