如何将 Jenkins Heavy Job 属性 与管道作业一起使用

How to use the Jenkins Heavy Job Property with Pipeline Jobs

我有一个包含多个阶段的管道作业,每个阶段都需要几个小时。 在流水线化之前,每个阶段都是自己的工作,我使用的是 Heavy Job Plugin for some of them. Now it looks as though the "properties" command allows to specify the "HeavyJobProperty". I managed to get its syntax correctly thanks to .

我的管道脚本如下所示:

node ('<label>') {
    ws ('<mydir>') {
        // Mark the code checkout 'stage'....
        stage 'Checkout'

        git url: '<repourl>'

        stage 'Build'
        properties ([[$class: 'HeavyJobProperty', weight: 8]])

        sh '<mybuild>'
    }
}

不幸的是,这似乎不起作用,在执行脚本时,我收到消息:

ERROR: cannot apply hudson.plugins.heavy_job.HeavyJobProperty to a WorkflowJob

有人知道我是如何让它工作的吗?

尽管流水线文档显示了 HeavyJobProperty,但该插件似乎还没有适应流水线作业。

繁重的工作矩阵插件与管道插件不兼容,也没有开放的问题来请求它(参见 https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

作为解决方法,您可以保留现有的旧构建作业并从管道中调用它们。

您要查找的流水线步骤是 'build'。如果您使用片段生成器,它会让您生成调用它的语法,包括您需要保存的任何参数。

如果您需要与管道相同的工作空间,您可以将您调用的作业配置为使用管道作业的工作空间。您可以在 "General" 标题的 "Advanced" 部分中设置工作区。它将是 "Use Custom Workspace"

该解决方案的注意事项:1) 繁重的工作将不再独立。 2)我认为如果你有一个以上的节点,它就不会很好地工作。