作者:觴儿_996 | 来源:互联网 | 2022-11-11 13:03
我有一组使用以下groovy脚本生成的多分支管道作业:
[
'repo1',
'repo2',
].each { service ->
multibranchPipelineJob(service) {
displayName(service)
branchSources {
git {
remote("git@gitlab.com:whatever/${service}.git")
credentialsId('gitlab-ssh-key')
}
}
orphanedItemStrategy {
discardOldItems {
daysToKeep(0)
numToKeep(30)
}
}
triggers {
periodic(5)
}
}
}
在每个仓库中Jenkinsfile
,其外观如下:
#!/usr/bin/env groovy
properties([
gitLabConnection('ci@gitlab.com'),
pipelineTriggers([
[
$class : 'GitLabPushTrigger',
triggerOnPush : true,
triggerOnMergeRequest: true,
]
]),
disableConcurrentBuilds(),
overrideIndexTriggers(false)
])
node {
def sbtHome = tool name: 'sbt-0.13.15', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder\$SbtInstallation'
stage('Checkout') {
checkout scm
}
stage('Build') {
sh "'${sbtHome}/bin/sbt' clean compile"
}
stage('Test') {
sh "'${sbtHome}/bin/sbt' test"
}
if (env.BRANCH_NAME == 'develop' || env.BRANCH_NAME == 'master') {
stage('Publish') {
sh "'${sbtHome}/bin/sbt' publish"
}
}
}
一切正常。该播种机项目产生从第一个脚本的所有文件夹和给予回购所有分支都正确建立。
不幸的是,在对gitlab进行提交+推送之后,我无法触发任何分支的构建。
我已经正确配置了jenkins-我的意思是gitlab插件,存在连接,并且一切正常。
我还在gitlab端添加了一个webhook,它也可以正常运行。发送测试推送后,我200 OK
从jenkins 收到消息,并且确实在日志中看到扫描分支已开始并正确检测到更改。不幸的是,更改后的分支的构建无法启动。这是分支扫描日志的摘录:
Checking branch ci
‘Jenkinsfile’ found
Met criteria
Changes detected: ci (a7b9ae2f930b0b10d52bb42f1ecf96a68bba4a30 ? 39a4c1a65051d5e90079feec14ad22455a77c58e)
Did not schedule build for branch: ci
我100%确定这不是我的jenkins实例和gitlab帐户之间的通信问题。我看到推送到gitlab后触发了Webhook,看到请求正在发送并且分支扫描正在运行。还可以检测到变化,但是为什么地球上的工作没有开始?我还仔细阅读了文档,并正确配置了所有文档。
Jenkins version: 2.150.3
Gitlab version: 11.8.1-ee
编辑
似乎在将jenkins升级到v.2.164.1之后,它们全部开始正常工作。