如何在代码更改推送到 GitHub 时触发 Jenkins 多分支管道
How to trigger a Jenkins multibranch pipeline when code change is pushed to GitHub
我为 GitHub 存储库设置了 Jenkins 作业 (multibranch pipeline
)。每当有更改推送到 Git 回购时,我想自动触发该作业。如何使用 Jenkinsfile
?
实现此目的
我想避免 Jenkins 作业中的任何配置更改,例如 Poll SCM
等。对于多分支管道,没有 Build whenever a change is pushed to GitHub
这样的选项
对于您的工作 "reacting" 到您 GitHub 的事件,将工作构建触发器设置为 "Poll SCM",但 不 指定一个时间表,如 this Whosebug answer.
所述
对于声明式 Jenkinsfile,这意味着:
pipeline {
triggers {
pollSCM('') // Enabling being build on Push
}
...
}
进一步阅读:
到目前为止(据我所知)最简单的选择是远程告诉 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/...
您可以使用此描述性管道脚本在新更改推送到 github
时自动构建您的管道
pipeline{
agent any
triggers {
githubPush()
}
...
}
您还应该使用相关的秘密令牌启用 github webhook。
我为 GitHub 存储库设置了 Jenkins 作业 (multibranch pipeline
)。每当有更改推送到 Git 回购时,我想自动触发该作业。如何使用 Jenkinsfile
?
我想避免 Jenkins 作业中的任何配置更改,例如 Poll SCM
等。对于多分支管道,没有 Build whenever a change is pushed to GitHub
对于您的工作 "reacting" 到您 GitHub 的事件,将工作构建触发器设置为 "Poll SCM",但 不 指定一个时间表,如 this Whosebug answer.
所述对于声明式 Jenkinsfile,这意味着:
pipeline {
triggers {
pollSCM('') // Enabling being build on Push
}
...
}
进一步阅读:
到目前为止(据我所知)最简单的选择是远程告诉 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/...
您可以使用此描述性管道脚本在新更改推送到 github
时自动构建您的管道pipeline{
agent any
triggers {
githubPush()
}
...
}
您还应该使用相关的秘密令牌启用 github webhook。