【问题标题】:How to configure basic branch build strategies plugin using job dsl?如何使用作业 dsl 配置基本的分支构建策略插件?
【发布时间】:2019-05-14 20:39:47
【问题描述】:

多分支管道插件虽然很棒,但不会开箱即用地构建标签。需要使用 basic-branch-build-strategies-plugin 来启用标签发现和构建。

我的问题直接与:Is there a way to automatically build tags using the Multibranch Pipeline Jenkins plugin?

此插件在 UI 中运行良好,但似乎无法使用 Jenkins 作业 dsl 轻松配置。有没有人有任何关于如何使用 dsl(或 dsl configure->)设置分支策略以便发现和构建标签的示例?

在通过 ui 更改设置时检查了 config.xml 文件之间的增量,看来我需要能够添加此 trait:

<org.jenkinsci.plugins.github__branch__source.TagDiscoveryTrait />

以及构建策略下的本节:

<buildStrategies
    <jenkins.branch.buildstrategies.basic.TagBuildStrategyImpl
        plugin="basic-branch-build-strategies@1.1.1">
        <atLeastMillis>-1</atLeastMillis>
        <atMostMillis>172800000</atMostMillis>
    </jenkins.branch.buildstrategies.basic.TagBuildStrategyImpl>
</buildStrategies>

【问题讨论】:

    标签: jenkins github branch multibranch-pipeline


    【解决方案1】:

    类似

    multibranchPipelineJob('pipline') {
      ...
      branchSources {
        branchSource {
          source {
            github {
              ...
              traits {
                ...
                gitTagDiscovery()
              }
            }
            buildStrategies {
              buildTags {
                atLeastDays '-1'
                atMostDays '20'
              }
            }
          }
        }
      }
    }
    

    是我一直在使用的。它没有记录在插件中,但这并没有阻止 job-dsl 插件为其动态生成 API 调用。

    您可以通过访问{your_jenkins_url}/plugin/job-dsl/api-viewer/index.html 查看特定 Jenkins 安装的 API。 有时东西不会出现在那里,因为插件缺乏对 job-dsl 的支持。 在这种情况下,您仍然可以使用Configure Block 生成 xml。 但是,这使用起来很笨拙。

    编辑:至少如果我按照动态生成 API 的建议使用 gitHubTagDiscovery(),Jenkins 会崩溃。相反,必须使用 configure 块来获取 github 的所有发现方法。

      configure {
        def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
        traits << 'org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait' {
          strategyId(1)
        }
        traits << 'org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait' {
          strategyId(1)
        }
        traits << 'org.jenkinsci.plugins.github__branch__source.TagDiscoveryTrait'()
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 2021-02-13
      相关资源
      最近更新 更多