将 TortoiseHG 与 Jenkins 同步

Syncing TortoiseHG with Jenkins

我是这个持续集成的新手。我想使用 Jenkins 作为我的 CI 系统,但每次有新系统时我都无法让它拉取构建。

使用 mercurial 的插件,我能够连接到我的存储库并正常拉取我的构建,但我不希望 Jenkins 继续轮询,我希望它仅在有新构建时才更新构建。在插件的维基上,我发现了这个:

As of version 1.38 it's possible to trigger builds using push notifications instead of polling. In your repository's .hg/hgrc file add:

[hooks] 

  commit.jenkins = wget -q -O /dev/null <jenkins root>/mercurial/notifyCommit?url=<repository remote url>
  incoming.jenkins = wget -q -O /dev/null <jenkins root>/mercurial/notifyCommit?url=<repository remote url>

现在我将 Jenkis 保留在本地,所以我在我的 hgrc 文件中使用了这个:

commit.jenkins = wget -q -O /dev/null http://localhost:8080/mercurial/notifyCommit?url=<my repository remote url>
incoming.jenkins = wget -q -O /dev/null http://localhost:8080/mercurial/notifyCommit?url=<my repository remote url>

但是构建没有被触发。有人可以帮助我吗?

[更新]

我没有注意 wget 命令,它在 windows 上不存在。安装了它,它仍然是一样的。 Jenkins 没有拉动构建。

  1. 您必须在 PATH 上安装 wget(我会推荐 GOW 的本机端口,而不是 Cygwin - 或 Win10 中的 Bash)
  2. 您的挂钩必须处于工作状态
  3. wget ... 必须产生预期的结果

你有三个现在有两个可能的故障点并且必须独立测试所有


  • 我的挂钩有用吗?

将你当前的hooks内容替换为像

这样的哑坯
  commit.jenkins = echo Commit hook here
  incoming.jenkins = echo Incoming hook here

和测试挂钩(在 控制台 中以获得更好的可见性)通过执行提交到 repo 添加挂钩并拉|推到它|解绑任何东西。如果你会看到钩子输出——它们是可用的

  • Jenkins 集成有效吗?

提交回购协议后,您可以手动执行挂钩任务:运行 wget -q -O /dev/null ... 并在 Jenkins 中检查结果