Jenkins宣言型パイプライン コードを実行するpostディレクティブを提供afterステージが終了しました。コードを実行するのと同じようなものはありますかbeforeステージが実行されていますが、最も重要なのは、SCMチェックアウトの前ですか?
たとえば、次のようなものがあります。
pre {
always {
rm -rf ./*
}
}
これにより、ソースコードがチェックアウトされる前に、ビルドのワークスペースがクリーンアップされます。
pre
はクールな機能のアイデアですが、まだ存在していません。 skipDefaultCheckout
およびcheckout scm
(デフォルトのチェックアウトと同じ)がキーです。
pipeline {
agent { label 'docker' }
options {
skipDefaultCheckout true
}
stages {
stage('clean_workspace_and_checkout_source') {
steps {
deleteDir()
checkout scm
}
}
stage('build') {
steps {
echo 'i build therefore i am'
}
}
}
}
現時点ではpre-build
の手順はありませんが、探している目的のために、パイプラインジョブの構成とマルチブランチパイプラインジョブで実行できます。jenkinsfileの場所を定義するときに、その他の動作->リポジトリを一掃してクローンを強制します。
構築する前にワークスペースの内容を削除して、完全に新しいワークスペースを確保します。
本当にすべてを削除してネットワークの使用量を節約したくない場合は、この他のオプションを使用できます:追加の動作->チェックアウト前にクリーンアップ
.gitignoreで指定されているものを含め、追跡されていないすべてのファイルとディレクトリを削除することにより、すべてのチェックアウトの前にワークスペースをクリーンアップします。また、追跡されたすべてのファイルをバージョン管理された状態にリセットします。これにより、ワークスペースが新しい空のディレクトリに複製してチェックアウトした場合と同じ状態になり、ビルドが前のビルドで生成されたファイルの影響を受けないようになります。
これはワークスペースを削除せず、リポジトリを元の状態にリセットし、変更がある場合は新しい変更をプルします。