【发布时间】:2017-03-08 06:56:47
【问题描述】:
TL;DR:鉴于以下声明性 Jenkinsfile,我如何在成功构建后合并拉取请求? http://pastebin.com/uivA0MqF
在(多分支)作业配置中,在分支源 > 高级下我有以下设置:
在 GitHub 中,我有一个监听 pull request 和 push 事件的网络挂钩。
编辑:我尝试了以下操作,但目前失败并出现语法错误:
def gitPullRequestNumber = null
...
...
stage ("Merge pull request") {
steps {
gitPullRequestNumber = sh "git ls-remote origin 'pull/*/head:develop'"
sh "curl -X PUT -d '{\'commit_title\': \'Merge pull request\'}' <<GIT REPO URL>>/pulls/${gitPullRequestNumber}/merge?access_token=<<ACCESS-TOKEN"
}
}
错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:
WorkflowScript: 58: Expected a step @ line 58, column 13.
gitPullRequestNumber = sh "git ls-remote origin 'pull/*/head:develop'"
^
1 error
背景:
我们有一个master 分支和一个develop 分支。开发人员将针对将运行测试的develop 分支执行拉取请求。如果测试通过,则拉取请求应合并到分支中。在打开拉取请求之前完成对代码的审查。确定后,develop 分支将合并到master 分支。将来甚至可能只有一个分支。
我知道有些人可能会说这不会发生是一件好事,但这是我们目前正在努力实现的目标。
如前所述,这一切正常,工作开始并使用 Jenkinsfile 根据直接推送和/或拉取请求检查 repo,构建开始,测试运行等等......但是缺少的部分正在合并拉取请求。
【问题讨论】:
-
或许 Jon S 或 @Christopher Orr 可以提供一些信息?
-
您不能在声明式管道中分配变量,
script块内除外。 -
像往常一样,克里斯托弗,你的经历照亮了道路。
标签: git github jenkins jenkins-pipeline