2

シェル スクリプトを実行する一連のジョブがあります。これらのスクリプトのパラメーターは、ビルドで定義されたいくつかの選択肢から選択できます。ここで、リリース プラグインを使用して、人々が一連の「リリースのみ」のパラメーターを誤って選択するのを防ぎたいと考えています。

したがって、私が基本的に必要としているのは、1 つのビルドに 2 つの異なるパラメータ選択セットを持たせる機能です。

これを達成するために、次のようにジョブを構成しました。

Master Job
normal build
- choiceParameter name:TEST values:"normal"
release build
- choiceParameter name:TEST values:"release"

Child Job
normal build
- choiceParameter name:TEST values:"normal"
release build
- choiceParameter name:TEST values:"release"

MasterJob は「Parameterized Build」プラグインを介して ChildJob をトリガーします

通常のビルドを実行すると、すべて正常に動作します。しかし、MasterJob でリリース ビルドをトリガーすると、次の例外が発生します。

ERROR: Build step failed with exception
java.lang.IllegalArgumentException: Illegal choice for parameter TEST: release
    at hudson.model.ChoiceParameterDefinition.checkValue(ChoiceParameterDefinition.java:75)
    at hudson.model.ChoiceParameterDefinition.createValue(ChoiceParameterDefinition.java:87)
    at hudson.model.ChoiceParameterDefinition.createValue(ChoiceParameterDefinition.java:19)
    at hudson.plugins.parameterizedtrigger.ProjectSpecificParameterValuesActionTransform.convertToDefinedType(ProjectSpecificParameterValuesActionTransform.java:83)
    at hudson.plugins.parameterizedtrigger.ProjectSpecificParameterValuesActionTransform.transformParametersAction(ProjectSpecificParameterValuesActionTransform.java:34)
    at hudson.plugins.parameterizedtrigger.ProjectSpecificParametersActionFactory.getProjectSpecificBuildActions(ProjectSpecificParametersActionFactory.java:32)
    at hudson.plugins.parameterizedtrigger.BuildTriggerConfig.getBuildActions(BuildTriggerConfig.java:290)
    at hudson.plugins.parameterizedtrigger.BuildTriggerConfig.perform2(BuildTriggerConfig.java:336)
    at hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig.perform2(BlockableBuildTriggerConfig.java:57)
    at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:85)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
    at hudson.model.Build$BuildExecution.build(Build.java:203)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:536)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Trigger/call builds on other projects' marked build as failure
Finished: FAILURE

このエラーを修正するのは簡単です。通常のビルドの選択肢に「リリース」という値を追加するだけです。しかし、これはこのセットアップの意図全体を破壊します。

この種のセットアップを機能させる方法はありますか?

4

1 に答える 1

0

プロダクション ボックスでの任意のスクリプトの実行を制限したい場合は、ノード ラベル プラグインを使用できます。

どのノード (ボックス/マシン) ユーザーがジョブを実行できるかを選択するようにジョブを構成できます。このようにして、prod env でジョブを実行しているユーザーを制限できます。

于 2015-05-24T20:05:20.687 に答える