相关疑难解决方法(0)

在多分支管道上触发分支索引(Jenkins/Git)

我正试图在Jenkins的Multibranch Pipelines作业中自动触发'Branch Indexing'.

目前,只有一种方法似乎实际工作,即轮询,但我无法做到这一点,无论如何轮询是一个糟糕的解决方案.

该插件不支持"远程触发器构建(例如,从脚本)"(选项未保存),因此我无法通过推送等Web挂钩触发它.

我尝试在repo上创建一个"触发器"自由式构建,但是"构建后操作 - 构建其他项目"声称Multibranch Pipeline项目不是可构建的项目.

如果轮询是我能做到这一点的唯一方法,那么我需要禁用自动SCM触发(否则我们在重新索引时会得到重复的构建)因为我需要在分支项目上启用web钩子触发.

但这不起作用,因为我通过分支项目中的管道脚本设置Web挂钩,并且您需要至少构建一次以使该属性已注册.

我已经在圈子里走了一段时间,所以希望我错过了一些明显的东西,但任何帮助都会受到赞赏.

我想象能够做到以下之一

  • 以某种方式触发多分支项目作为下游项目

  • 轮询multibranch项目,只构建以前没有构建的分支项目

干杯

jenkins jenkins-pipeline multibranch-pipeline

8
推荐指数
1
解决办法
3689
查看次数

Jenkins Pipeline - 等待非作业项目(CompulatedFolder、多分支管道项目)

我正在 Jenkins 中使用多分支管道项目。我让詹金斯为新分支建立索引。我需要 Jenkins 等待多分支管道项目的索引完成。

这是我当前的代码:

def triggerScanMultibranchPipeline(projectDir, repo) {
    def multibranchProject = Jenkins.instance.getItemByFullName "$projectDir/$repo"
    multibranchProject.scheduleBuild()
    while (multibranchProject == null || multibranchProject.isDisabled()) {
        sleep 1000 //1000 milliseconds = 1 second
    }
    sleep time: 1, unit: 'SECONDS'
}
Run Code Online (Sandbox Code Playgroud)

已经尝试过:

  • 将(第二次)睡眠时间更改为 30 秒

triggerScanMultibranchPipeline这会增加每次调用时构建的持续时间。

我无法用于"wait: true"完成索引,因为不支持等待非作业项目。请参阅https://github.com/jenkinsci/pipeline-build-step-plugin/blob/pipeline-build-step-2.13/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStepExecution .java#L80

如何让Jenkins等到多分支管道项目的分支索引完成?

jenkins jenkins-pipeline multibranch-pipeline

6
推荐指数
0
解决办法
358
查看次数