在 Phabricator 中创建 repo 时自动在 Jenkins 中创建一个作业

Create a job in Jenkins automatically when a repo is created in Phabricator

我在 phabricator 中有一个存储库并克隆到我的本地机器中。

现在我想在 Phabricator 中创建一个新的 repo 后自动创建一个新的 Jenkins 作业。 Jenkins API 可以远程创建新作业。

根据詹金斯的说法:

To create a new job, post config.xml to this URL with query parameter name=JOBNAME. You need to send a Content-Type: application/xml header.

我可以使用 terminal.

通过以下命令创建作业
curl -X POST -H "Content-Type:application/xml" -d "<project><builders/><publishers/><buildWrappers/></project>" "http://ip:port/createItem?name=AA_TEST_JOB1" 

问题:我如何运行 Harbormaster 命令创建一个 Jenkins 作业并发送 config.xml 文件来配置该新作业?

盖·华纳(http://www.guywarner.com/) has done a lot of work to show how this is possible. You can visit his blog post for more details: http://www.guywarner.com/2014/05/integrating-jenkins-and-phabricator.html (part 1) and http://www.guywarner.com/2014/06/part-2-integrating-phabricator-and.html(第 2 部分)。

基本思路是您的 Harbormaster 构建计划将向您的 Jenkins 实例发出 HTTP 请求。

我们使用他的教程设置了近 100 个构建,这些构建基于不同类型的更改从 Phabricator 触发。

  • 实际上,在 Phabricator 中创建新存储库后,没有设置或自动创建 Jenkins 作业的方法。

  • 我已经解决了编辑 Phabricator php 代码的问题。简单的方法是在创建 repo 后从 php 代码调用 Jenkins API。