web-dev-qa-db-ja.com

JenkinsとPipelineMultibranch Pluginを使用して、ブランチ間で一意のビルド番号を設定するにはどうすればよいですか?

BlueOceanでJenkinsPipelineMultibranchプラグインを使用しています。

私の読書を通して、プロジェクトのビルド番号をJenkinsの実行に関連付けることは非常に一般的であると思います。これにより、インストールされたアプリケーションからCIシステム、ソース管理の変更、そしてプロンプトが表示された問題までのトレーサビリティが可能になります。変化。

問題は、各ブランチの実行番号が0から始まることです。複数のブランチがあるプロジェクトの場合、一意のビルド番号を保証することは不可能のようです。

10
pingu

一意の(グローバル数値)ビルド番号の代わりに、一意の(グローバル)ビルド表示名を試してみてください。

「パイプライン構文:グローバル変数リファレンス」によるとcurrentBuild.displayNameは書き込み可能なプロパティです。だからあなたは例えばビルド番号に追加情報を追加し(グローバルに一意にするため)、その文字列を後続のアーティファクト/アプリケーションビルドステップで使用します(目的のトレーサビリティのためにアプリケーションのバージョン出力に組み込むため)。何かのようなもの:

currentBuild.displayName = "${env.BRANCH_NAME}-${currentBuild.id}"

フォーマットされたビルドのスケジュールまたは開始時刻を使用する(currentBuild.timeInMillis)読み取り可能な日付として、またはSCMリビジョンを使用することも役立つ場合があります。結果は「20180119-091439-rev149923」になります。

参照:

3