如何在Jenkinsfile中设置GitHub拉取请求构建?

16

我已经使用Jenkins有一段时间了。我使用了Github Pull Request Builder插件,设置了许多项目,每当有人打开一个拉取请求时,就运行测试,然后在实际合并到主分支时触发其他工作(构建、推送、部署等)。

那么,是否有办法使用Jenkinsfile、组织文件夹或多分支构建来设置这个功能呢?

1个回答

20

github-organization-folder插件与multi-branch插件结合使用,提供了一个非常棒的功能:它扫描整个组织(可选地限制于存储库/分支名称中的某些模式),以查找Jenkinsfile并自动添加作业。这也适用于拉取请求。

一旦PR关闭,它会自动删除该作业。

为了避免任意代码执行,组织成员必须触发构建作业(与GPRB插件相同)。该短语可以在Jenkins系统设置中配置。
编辑:在Jenkins的高级部分中,您可以找到有关要构建哪种类型的PR的选项。如果构建fork PR,则据我所知,没有办法在先前检查代码之前防止运行代码。


一个例子,它看起来像这样:

PR on Github


PR in Jenkins


9
如果您希望在 PR 构建时以不同方式运行,您可以检查 env.BRANCH_NAME.startsWith('PR-') - Jesse Glick
5
或者 env.CHANGE_ID != null - Jesse Glick
1
我实际上做了相反的事情,使用了if (env.BRANCH_NAME == 'master'),但是这个答案对我帮助很大! - Paul Becotte
2
https://wiki.jenkins.io/display/JENKINS/GitHub+Organization+Folder+Plugin页面显示该插件已经过时,但没有提到替代方案。 - Nagev
1
此功能已移至GitHub分支源插件 - StephenKing
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接