Как настроить плагин базовых стратегий построения веток с помощью задания dsl? - PullRequest
0 голосов
/ 13 декабря 2018

Плагин для многоотраслевого конвейера, как ни крути, не создает теги из коробки.Использование подключаемого модуля basic-branch-build-стратегии-plugin необходимо для обнаружения и построения тегов.

Мой вопрос имеет прямое отношение к: Есть ли способ автоматически создавать теги с помощью плагина Multikranch Pipeline Jenkins?

Этот плагин отлично работает в пользовательском интерфейсе, но неКажется, что его легко настроить с помощью задания Jenkins dsl.У кого-нибудь есть примеры того, как установить стратегии ветвления, используя dsl (или dsl configure->), чтобы теги были обнаружены и созданы?

Изучив дельту между файлами config.xml при настройке параметровменяются через пользовательский интерфейс, похоже, мне нужно добавить эту черту:

<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>

1 Ответ

0 голосов
/ 05 февраля 2019

Что-то вроде

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

- это то, с чем я работал.Это не задокументировано в плагине, но это не мешает плагину job-dsl динамически генерировать вызовы API для него.

Чтобы узнать, что такое API для вашей конкретной установки Jenkins, перейдите на {your_jenkins_url}/plugin/job-dsl/api-viewer/index.html.Иногда вещи там не появляются, потому что в плагинах отсутствует поддержка job-dsl.В этом случае вы все равно можете сгенерировать xml с помощью Configure Block .Однако использовать его довольно неуклюже.

Редактировать: По крайней мере, если я использую gitHubTagDiscovery(), как подсказывает динамически генерируемый API, Дженкинс вылетит.Вместо этого необходимо использовать блок конфигурации, чтобы получить все методы обнаружения для 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'()
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...