13

multibranch pipeline为 GitHub 存储库设置了 Jenkins 作业 ( )。每当有更改推送到该 Git 存储库时,我想自动触发该作业。我怎样才能使用 a 来实现这一点Jenkinsfile

我想避免 Jenkins 作业中的任何配置更改,例如Poll SCM等。对于多分支管道,没有这样的选项Build whenever a change is pushed to GitHub

4

3 回答 3

6

对于您的作业“响应”来自 GitHub 的事件,请将作业构建触发器设置为“轮询 SCM”,但不要指定时间表,如此 Stackoverflow 答案中所述。

对于声明性 Jenkinsfile,这意味着:

pipeline {
  triggers {
    pollSCM('') // Enabling being build on Push
  }
  ...
}

进一步阅读:

于 2018-01-08T13:01:35.720 回答
3

每当将新更改推送到 github 时,您都可以使用此描述性管道脚本来自动构建管道

pipeline{
   agent any     
     triggers {
        githubPush()
      }
   ...
 }

此外,您应该使用相关的秘密令牌启用 github webhook。

于 2019-12-13T07:27:11.750 回答
2

到目前为止(我知道)最简单的选择是远程告诉 Jenkins Git 插件有一个已定义存储库的新提交。但是,这不会触发 Jenkins 立即开始工作。发生的情况是 Git 插件开始(重新)索引特定存储库。如果检测到更改,则启动 Jenkins 作业。

从您的存储库(GitHub、GitLab 等)中,您应该触发以下 URL:

http://my-jenkins-host/git/notifyCommit?url=git@gitlab.example.com:group/repository.git&delay=0sec

的值url必须与您在 Jenkins 作业(Git 插件)中配置的 SCM URL 匹配!

问题:可能是您的 Jenkins部署在根上下文 ( /) 下,在这种情况下 URL 将是http://my-jenkins-host/context-path/git/...

于 2018-01-25T13:56:38.750 回答