【问题标题】:How to configure server in Build Triggers → Gerrit event in job created by Job DSL如何在 Build Triggers 中配置服务器 → Job DSL 创建的作业中的 Gerrit 事件
【发布时间】:2021-06-24 10:10:35
【问题描述】:

我正在创建一个由对 Gerrit 的提交触发的 Jenkins 作业。

pipelineJob(jobName) {
  displayName(displayString)
  triggers {
    gerrit {
      events {
        patchsetCreated()
      }
      project('plain:Verify', ['ant:**'])
      configure { project ->
        project / triggers << 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject' {
          serverName('aj-Gerrit')
        }
      }
    }
  }
}

这很好用,当我查看 UI 时,我看到了。

但是,我希望默认选择 Gerrit 服务器 aj-Gerrit 而不是 Any Server

我试图通过在我的 Groovy 代码中添加配置块来实现这一点,

configure { project ->
  project / triggers << 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject' {
     serverName('aj-Gerrit')
  }
}

但它似乎不起作用。

有没有办法默认选择服务器?

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-groovy jenkins-job-dsl gerrit-trigger


    【解决方案1】:

    configure 函数在 gerrit 闭包中不存在。通常,所有可用的 Job DSL 选项都在页面上可见:

    <your-jenkins-url>/plugin/job-dsl/api-viewer/index.html
    

    但是,Gerrit 插件会破坏页面(原因:JENKINS-53250)。

    这是在手动将服务器添加到作业时生成的 XML:

    <triggers>
    <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.34.0">
      <spec></spec>
      <gerritProjects>
        <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject>
          <compareType>PLAIN</compareType>
          <pattern></pattern>
          <branches>
            <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch>
              <compareType>PLAIN</compareType>
              <pattern></pattern>
            </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch>
          </branches>
          <disableStrictForbiddenFileVerification>false</disableStrictForbiddenFileVerification>
        </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject>
      </gerritProjects>
      <dynamicGerritProjects class="empty-list"/>
      <skipVote>
        <onSuccessful>false</onSuccessful>
        <onFailed>false</onFailed>
        <onUnstable>false</onUnstable>
        <onNotBuilt>false</onNotBuilt>
        <onAborted>false</onAborted>
      </skipVote>
      <silentMode>false</silentMode>
      <enableTopicAssociation>false</enableTopicAssociation>
      <notificationLevel></notificationLevel>
      <silentStartMode>false</silentStartMode>
      <escapeQuotes>true</escapeQuotes>
      <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
      <dependencyJobsNames></dependencyJobsNames>
      <commitMessageParameterMode>BASE64</commitMessageParameterMode>
      <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
      <commentTextParameterMode>BASE64</commentTextParameterMode>
      <buildStartMessage></buildStartMessage>
      <buildFailureMessage></buildFailureMessage>
      <buildSuccessfulMessage></buildSuccessfulMessage>
      <buildUnstableMessage></buildUnstableMessage>
      <buildNotBuiltMessage></buildNotBuiltMessage>
      <buildAbortedMessage></buildAbortedMessage>
      <buildUnsuccessfulFilepath></buildUnsuccessfulFilepath>
      <customUrl></customUrl>
      <serverName>__ANY__</serverName>
      <triggerOnEvents class="linked-list">
        <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
          <excludeDrafts>false</excludeDrafts>
          <excludeTrivialRebase>false</excludeTrivialRebase>
          <excludeNoCodeChange>false</excludeNoCodeChange>
          <excludePrivateState>false</excludePrivateState>
          <excludeWipState>false</excludeWipState>
          <commitMessageContainsRegEx></commitMessageContainsRegEx>
        </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
        <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginDraftPublishedEvent/>
      </triggerOnEvents>
      <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
      <triggerConfigURL></triggerConfigURL>
      <triggerInformationAction/>
    </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
    </triggers>
    

    您可以尝试使用(与您使用的不同的类):

    configure { project ->
      project / triggers << 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger' {
         serverName('aj-Gerrit')
      }
    }
    

    如果它不起作用,则还必须配置来自生成的 XML 的更多元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多