私はいくつかのJenkinsジョブをDSLスクリプトに変換しています。Jenkins DSLを使ってgitub scmノードにGit実行可能ファイルを指定する
これらのうちのいくつかはSCMにgithubを使用しています。これはDSLでサポートされているため、設定が簡単です。しかし、100回以上のジョブ変換の後、初めてGit実行可能ファイルを指定する必要があります(これまでのすべてのジョブがデフォルトを使用していました)。これを行う方法はないようです。 job.xmlはこれを示しています
<scm class="hudson.plugins.git.GitSCM" plugin="[email protected]">
<configVersion>2</configVersion>
<userRemoteConfigs>...</userRemoteConfigs>
<branches>...</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<gitTool>Ubuntu Git</gitTool>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.SparseCheckoutPaths>
<sparseCheckoutPaths>
<hudson.plugins.git.extensions.impl.SparseCheckoutPath>
<path>
octane.pricing/octane.trader/server/work/mif_interface/cfg
</path>
</hudson.plugins.git.extensions.impl.SparseCheckoutPath>
</sparseCheckoutPaths>
</hudson.plugins.git.extensions.impl.SparseCheckoutPaths>
</extensions>
</scm>
私は離れて<gitTool>Ubuntu Git</gitTool>
からDSLを使用してこのすべてを行うことができます。
これはDSLで言及されていないので、私はこれがサポートされていないと推測するので、configureブロックを使用しようとしました。いくつかのことをしようとしましたが、私はほとんどの仕事に期待1:
configure { project ->
project << 'hudson.plugins.git.GitSCM' {
paramDefs << 'gitTool' {
string('Ubuntu Git')
}
}
}
しかし、無サイコロは - XMLはまだ「デフォルト」オプションを示しています。
これはDSLで直接指定することはできませんが、誰かが私がconfigureブロックで間違っていることを見ることができますか?
job('example') {
scm {
git {
remote {
github('owner/repo')
}
configure { scmNode ->
scmNode/gitTool('changeme')
}
}
}
}
は仕事DSL APIビューアでconfigureを参照し、ジョブDSLのwikiでConfigure Blockについての詳細情報:
「scmNode」変数の値は何ですか?どのノードが参照するのですか?なぜですか? –
これは[docs](https://jenkinsci.github.io/job-dsl-plugin/#path/job-scm-git-configure)で述べたように 'scm'ノードを参照します。 – daspilker