我正在为几个项目建立一个CI计划,在Jenkins上,使用多分支插件。一切都很顺利,但我的强迫症总是想要更多。
现状:
多分支的功能正在发挥作用:拾起并建立新的分支和PRs。它通过轮询来做到这一点:每隔N分钟,它就会轮询Github以获得新的分支和分支更新。
我要:
我非常想建立新的推送吉特布Web钩子推送事件,并避免轮询。当不处理多分支时,只需检查GitHub hook trigger for GITScm polling
框即可。在这种情况下,我将不得不向Jenkinsfile添加一个新的触发器。我想应该是:
triggers {
githubWebhook()
}
目前,我的Jenkinsfile是这样的:
pipeline {
agent {
docker {
image '${REDACTED}/builder:sbt-0.13-jdk-oracle-8'
args '-v sbt-cache:/root/.sbt/ -v ivy-cache:/root/.ivy2/'
customWorkspace '/src/'
}
}
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timestamps()
timeout(time: 1, unit: 'HOURS')
}
stages {
stage('Testing') {
steps {
sh "sbt clean coverage test coverageReport coverageAggregate sonar"
}
}
stage('Push snapshot'){
when {
not {
branch 'master'
}
}
steps {
echo "[DRYRUN] sbt publishSnapshot"
}
}
stage('Push release') {
when {
branch 'master'
}
steps {
echo "[DRYRUN] sbt publish"
}
}
}
post {
changed {
echo "[DRYRUN] changed build"
}
}
}
有人处理过这样的事吗?还有别的办法吗?
发布于 2018-05-03 17:02:15
根据官方GitHub分支插件文档,如果在Jenkins全局设置中配置了GitHub API令牌,则插件可以自动为您配置webhooks:
您可以更改构建配置以在不同的时间执行文件夹计算。如果您的GitHub存储库在过去一天内没有收到来自GitHub的任何更改通知,则默认设置将扫描它的更改。此扫描将捕获从托管GitHub存储库中添加或删除的存储库。始终可以强制文件夹计算从“GitHub组织”页面中运行。虽然构建触发器通常是足够的,但是当更改被推送到GitHub存储库时,您可以设置Web挂钩来自动触发构建。要做到这一点,您必须有一个带有令牌的GitHub登录。
您还可以通过GitHub本身通过注册服务器配置的帮助部分中提供的URL手动配置这个URL。
https://devops.stackexchange.com/questions/4044
复制相似问题