Git Jenkins管道和隐藏请求生成器不处理PR创建/更新
下面是使用Jenkins管道需要达到的要求,我是Jenkins管道的新手Git Jenkins管道和隐藏请求生成器不处理PR创建/更新,git,jenkins,bitbucket,jenkins-plugins,jenkins-pipeline,Git,Jenkins,Bitbucket,Jenkins Plugins,Jenkins Pipeline,下面是使用Jenkins管道需要达到的要求,我是Jenkins管道的新手 完成开发工作并将其更改推至 用户创建拉取请求的Bitbucket 为了批准拉取请求,我们需要至少一个成功的拉取请求 詹金斯建造。因此,我们只希望得到 代码已签入拉取请求 创建/更新拉动请求时,应触发Jenkins 自动进行真正的连续集成 构建结果应报告回Bitbucket 为上述过程使用了隐藏请求生成器和隐藏通知程序,该过程适用于正常的Freestyle项目。 我们需要使用Jenkins管道迁移类似的功能,因此创建了J
- 完成开发工作并将其更改推至 用户创建拉取请求的Bitbucket
- 为了批准拉取请求,我们需要至少一个成功的拉取请求 詹金斯建造。因此,我们只希望得到 代码已签入拉取请求
- 创建/更新拉动请求时,应触发Jenkins 自动进行真正的连续集成
- 构建结果应报告回Bitbucket
node {
stage('Checkout') {
checkout(
[
$class: 'GitSCM',
extensions: [
[$class: 'CleanCheckout'],
],
branches: [
[name: '']
],
userRemoteConfigs:
[[
credentialsId: 'id',
url: 'repourl.git'
refspec: ('+refs/pull-requests/*/from:refs/remotes/origin/pr/*/from'),
branch: ('origin/pr/${pullRequestId}/from')
]]
])
}
stage('Build') {
sh 'make'
}
stage('notify') {
step([$class: 'StashNotifier'])
try {
// Do stuff
currentBuild.result = 'SUCCESS'
} catch(err) {
currentBuild.result = 'FAILED'
}
step([$class: 'StashNotifier'])
}
}
虽然我在创建/更新PR时已经完成了上述配置,但在jenkins中构建不会自动触发。我猜从stash到jenkins的通知没有发生,因为我们在自由风格的项目中指定了“origin/${pullRequestId}/from”
。但我没有那个选项来指定管道内作业
尝试了以下几种选择
我尝试使用“Poll SCM”项目和指定的cron作业来触发,而不是隐藏请求生成器,作为“H/2****
”。提交后,作业在jenkins触发。这意味着每次提交都会触发jenkins作业。但是詹金斯应该在创建/更新PR时触发作业
同样基于以下内容,一个答案是“在自由式作业中添加一个触发器,作为构建步骤启动管道作业”,我没有找到这个答案
我在这里遗漏了一些对詹金斯管道来说可能是基本的和新的东西
关于实现所需行为的任何提示?根据查找编辑问题如果您能够将post receive webhook添加到您的存储库/bitbucket,请尝试在bitbucket存储库设置中将:
bitbucket服务器webhook添加到Jenkins
。然后将Poll SCM设置为“
将阻止jenkins进行轮询,但bitbucket在有新提交等时将触发生成。