Плагин Jenkins DSL (›=1.77): используйте gerrit-trigger в pipeJob

Я не знаю, как использовать плагин gerrit-trigger в конвейерной работе DSL. Согласно документу плагина dsl триггеры устарели для конвейерных заданий. . И из вики 1.77 заменены конвейерными триггерами. . Поэтому я изменил раздел триггеров на

properties {
    pipelineTriggers {
        triggers {
            gerrit {
                events {
                    patchsetCreated()
                }
                project('**My/Git/Repo', '**')
            }
        }
    }
}

Однако, когда я использую конвейерные триггеры, я получаю следующее

ОШИБКА: (configure_seed_jobs.groovy, строка 25) Нет подписи метода: events() применима к типам аргументов: (configure_seed_jobs$_run_closure1$_closure4$_closure9$_closure10$_closure11$_closure12) значения: [configure_seed_jobs$_run_closure1$_closure4$_closure9$ _closure10$_closure11$_closure12@3bcd6c54] Возможные решения: gerritProjects(), buildFailureMessage(), buildNotBuiltMessage(), buildStartMessage(), buildSuccessfulMessage(), buildUnstableMessage(), buildUnsuccessfulFilepath(), changeSubjectParameterMode(), commentTextParameterMode(), commitMessageParameterMode() , customUrl(), dependencyJobsNames(), dynamicTriggerConfiguration(), escapeQuotes(), gerritBuildFailedCodeReviewValue(), gerritBuildFailedVerifiedValue(), gerritBuildNotBuiltCodeReviewValue(), gerritBuildNotBuiltVerifiedValue(), gerritBuildStartedCodeReviewValue(), gerritBuildStartedVerifiedValue(), gerritBuildSuccessfulCodeReviewValue(), gerritBuildSuccessfulVerifiedValue(), gerritBuildUnstableCodeReviewValue (), гер ritBuildUnstableVerifiedValue(), gerritSlaveId(), nameAndEmailParameterMode(),notificationLevel(), serverName(),silentMode(),silentStartMode(), skipVote(), triggerConfigURL(), triggerOnEvents()

Что мне не хватает?


person Oscar    schedule 23.04.2020    source источник
comment
Теперь я нашел ссылку на конкретную версию API в https://‹project-host-name›/plugin/job-dsl/api-viewer/index.html. Список методов API, некоторые из которых находятся в разделе «Возможные решения». Возможно, API, размещенный по адресу jenkinsci.github.io/job-dsl-plugin, должен указывать на самое последнее и лучшее?   -  person Oscar    schedule 24.04.2020


Ответы (1)


У меня была та же проблема, потому что события{..} или project() больше не доступны для gerrit в pipeTriggers, вместо этого вы должны использовать triggerOnEvents {..} и gettitProjects{...}. Для получения более подробной информации вы можете найти их в документе вашего jenkins (например, http://0.0.0.0:8080/plugin/job-dsl/api-viewer/)

properties {
  pipelineTriggers {
    triggers {
      gerritTrigger {
        gerritProjects {
          gerritProject {
            compareType('PLAIN')
            pattern('**My/Git/Repo')
            branches {
              branch {
                compareType('PLAIN')
                pattern('master')
              }
            }
          }
        }
      triggerOnEvents {
        changeMerged()
      }
    }
  }
}
person chsieh    schedule 21.10.2020