尝试在DSL代码中重新创建Jenkins作业的“来自SCM的管道脚本”部分

时间:2019-09-22 14:28:33

标签: jenkins jenkins-pipeline dsl jenkins-job-dsl

我正在使用Jenkins版本1.658和版本1.43中的Job DSL插件,我正在将现有的Pipeline作业转换为DSL生成的作业。 原始作业有一个“ SCM的管道脚本”部分,我似乎找不到在DSL中创建代码的代码。 我知道在DSL插件的较新版本中,我具有适用于本节的cpsScm配置,但它不适合我使用的版本。 因此,当我说明作业中使用的插件版本时,我尝试使用代码中的configure部分来创建它。

这是我的尝试之一:

configure {
    def workflow = it / 'org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition' (plugin: 'workflow-cps@2.23') {
    workflow << it / 'scm' / 'hudson.plugins.git.GitSCM' (plugin: 'git@3.0.3') {
            configVersion 2
        }
    }

这是我正在从事的Jenkins作业的config.xml中的部分内容:

<flow-definition plugin="workflow-job@2.9">
.
.
.
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="workflow-cps@2.23">
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.0.3">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>https://github.com/XXXXX.git</url>
<credentialsId>XXXXX</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions/>
</scm>
<scriptPath>buildScripts/workflow_deploy.groovy</scriptPath>
</definition>
<triggers/>
</flow-definition>

当我尝试使用此代码创建作业时,它将添加“管道脚本”框,而不是“来自SCM的管道脚本”。 我知道这是一个非常特定的情况,版本很旧,但是我只是想弄清楚如何将类中的嵌套类转换为DSL代码。

谢谢!

0 个答案:

没有答案