Jenkins job-dslプラグインをテストしています。 「ビルドを開始する前にワークスペースを削除する」設定が有効になっている既存のプロジェクトがあります。
次のDSLが定義されています。
job("$basePath/my-project") {
scm {
git {
remote {
name('Origin')
url('[email protected]:my-organisation/my-project.git')
}
branch('*/develop')
extensions {
wipeOutWorkspace()
submoduleOptions {
recursive()
}
}
}
}
}
これは実際には同じではない構成を提供するようで、「リポジトリを消去してクローンを強制する」オプションが表示されます。これらのオプションは最終的に本当に同じものですか、それとも異なる動作がありますか?
一般に、両方のオプションに違いはありません。
それらは異なるプラグインによって提供されます:
Workspace Clean PluginとGit Pluginの主な違い:
Gitプラグインの「リポジトリを消去してクローンを強制する」オプションの重要な動作は、「サブディレクトリにチェックアウト」オプションで選択したリポジトリサブディレクトリのみを削除することです。ワークスペースの残りの部分はそのままになります。これは、私が知る限り、ドキュメントには記載されていません。
「削除するファイルのパターン」の詳細設定セクションでクローンサブディレクトリを指定することにより、Workspace Cleanupプラグインで同様の動作を実現できます。
最終結果はまったく同じですが、私の観察では、Gitプラグインの削除はWorkspace Cleanupプラグインよりも5秒高速でした。