0

我目前正在尝试实现作业超时等 vi “包装器”,如文档一些示例中所述。

无论我是直接将包装器应用于作业还是作业模板或默认值,我都看不到对生成的 XML 的任何影响。

几年前有一些错误报告,但尽管听起来很相似,但我认为该解决方案不适用于我,因为报告是 Jenkins 特定的,但我生成的配置根本不包含任何<buildWrappers>部分!

例如,以下 YAML 应生成超时部分:

- job:
    name: bla
    project-type: "pipeline"
    dsl: |
      sh("hello world")
    wrappers:
      - timeout:
          timeout-var: 'BUILD_TIMEOUT'
          fail: true
          elastic-percentage: 150
          elastic-default-timeout: 90
          type: elastic

生成的输出:

<?xml version="1.0" encoding="utf-8"?>
<flow-definition plugin="workflow-job">
  <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps">
    <script>sh(&quot;hello world&quot;)
</script>
    <sandbox>false</sandbox>
  </definition>
  <actions/>
  <description>&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <org.jenkinsci.plugins.workflow.job.properties.DisableConcurrentBuildsJobProperty/>
  </properties>
</flow-definition>

知道我在这里做错了什么吗?

jenkins-job-builder在 Python 3.9 上使用 v3.12.0

4

1 回答 1

0

好的,找到了

    def gen_xml(self, xml_parent, data):
        if data.get("project-type", "freestyle") == "pipeline":
            logger.debug("Build wrappers skipped for Pipeline job")
            return

看起来文档只是没有提到包装器不适用于我正在使用的唯一工作类型:)

于 2022-02-15T06:28:38.140 回答