如何使Jenkins构建推送代码并从Github获取请求

时间:2015-08-14 16:44:00

标签: jenkins jenkins-plugins

我正在尝试找到合适的配置,以便Jenkins在以下时间开始工作:

1. code is pushed to Github
2. a pull request it made

我发现Github和Github Pull Request Builder插件非常有用,但我不能让#1和#2同时工作。

它可能与我在源代码管理部分中设置的refspec有关。 #1需要+refs/heads/*:refs/remotes/origin/*的refspec而#2需要+refs/pull/*:refs/remotes/origin/pr/*的refspec。

我尝试在同一部分中使用两个存储库,但只使用一个或另一个版本,而不是两个。

我是否可以使用插件或特定配置来构建推送和拉取请求?

2 个答案:

答案 0 :(得分:3)

您可以通过简单地用空格分隔它们来指定两个refspec:

sudo apt-get install openvswitch-testcontroller
sudo cp /usr/bin/ovs-testcontroller /usr/bin/ovs-controller

......如此处所述:https://git-scm.com/book/en/v2/Git-Internals-The-Refspec

然后配置多个分支说明符。我有:

+refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/*

这是构建,PR,主人和我的候选分支。

答案 1 :(得分:1)

如果您尝试在一个作业中设置两者,那么您可能需要稍微改变您的要求。

无论哪种 您可以在同一个jenkins中为不同的工作创建2个作业。
OR 使用pull request builder并设置配置以在构建后合并代码,这样就可以实现两者。

如果您的回购已推送除拉取请求以外的其他回复请求,则必须创建2个作业。