Jenkins を数週間使用していますが、小さな問題が 1 つあります。パラメータ化されたジョブのパラメータの最後の値を次のビルドのデフォルト値として保存するためのプラグインまたはソリューションが見つかりません。
例: 私のパラメーターは、最初のビルドでビルド バージョン (1.0.0.01) を取ります。次のビルドでは1.0.0.02に変更する予定ですが、ヒントとしてデフォルト値欄に1.0.0.01を入れておきたいです。誰かが解決策やアドバイスを持っていますか?
Jenkins を数週間使用していますが、小さな問題が 1 つあります。パラメータ化されたジョブのパラメータの最後の値を次のビルドのデフォルト値として保存するためのプラグインまたはソリューションが見つかりません。
例: 私のパラメーターは、最初のビルドでビルド バージョン (1.0.0.01) を取ります。次のビルドでは1.0.0.02に変更する予定ですが、ヒントとしてデフォルト値欄に1.0.0.01を入れておきたいです。誰かが解決策やアドバイスを持っていますか?
Jenkins API を使用してシステム groovy ビルド ステップをジョブ (またはビルド後の Groovy ステップ) に追加して、プロジェクトを直接変更し、デフォルトのパラメーター値を設定できます。
開始するのに役立つコードを次に示します。
import hudson.model.*
paramsDef = build.getParent().getProperty(ParametersDefinitionProperty.class)
if (paramsDef) {
paramsDef.parameterDefinitions.each{ param ->
if (param.name == 'FOO') {
println("Changing parameter ${param.name} default value was '${param.defaultValue}' to '${param.defaultValue} BAR'")
param.defaultValue = "${param.defaultValue} BAR"
}
}
}
Jenkins モデルのクラスParameterDefinitionを見てください。
現在実行中のビルドに基づいて、デフォルトのパラメーター値を変更する必要がある可能性があります。それを取得するコードは次のようになります。
def thisBuildParamValue = build.buildVariableResolver.resolve('FOO')
Persistent Parameter Pluginはまさにあなたが探しているものです!
公式の Jenkins リポジトリからダウンロードしてインストールするだけで、追加のセットアップは必要ありません。
次に、ジョブで、ビルド間でデフォルト値を使用して保存するために、「永続パラメーター」を追加するだけです。
Extended Choice Parameterプラグインは、プロパティ ファイルのデフォルト パラメータ値を使用してこの機能を提供します。指定したプロパティ キーから既定のパラメーターを選択できます。このキーは、現在のビルドでプログラムによって変更できます。次に、現在のビルドで groovy スクリプトを使用して、次のビルドのデフォルト プロパティ キーの値を設定します。
例として、次のようなキーを持つプロパティ ファイルversion.propertiesによってデフォルト値が定義される拡張選択パラメータがあります。
versions=1.0.0.02, 1.0.0.01, 1.0.0.00
default.version=1.0.0.02
パラメータ定義には次のものが含まれます。
Property File=version.properties
Property Key=versions
Default Property File=version.properties
Default Property Key=default.versions
次のビルドのパラメータの GUI には、デフォルトで 1.0.0.02 が選択された選択リストが表示されます。この機能は、下流のビルド ステージのパラメーターを以前のビルドで設定するパイプライン ビルドにも非常に役立ちます。
このアプローチの唯一の欠点は、パラメーター UI がドロップダウン選択になることです。ユーザーを混乱させないように、バージョン プロパティ キーに単一の値を指定することもできます。