2015-05-22 23 views
0

我有一組運行shell腳本的作業。這些腳本的參數可以通過構建中定義的一些選擇來選擇。 現在我想使用release插件來防止人們意外地從一組「僅發佈」參數中進行選擇。如何使用參數化觸發器插件觸發的作業中的發佈版本的不同參數集

所以我基本需要的是有兩個不同的參數選擇集合的一個構建的能力。

爲了實現這一點,我已經配置了工作如下:

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通過「參數構建」插件

觸發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 

修復這個錯誤很容易。我只需要將「釋放」值添加到正常構建中的選項。但是這破壞了這個設置的整個意圖。

有沒有辦法讓這種設置工作?

回答

0

如果您希望人們限制在生產框上運行任意腳本,您可以使用節點標籤插件。

您可以配置作業以選擇哪個節點(機器/機器)用戶可以運行作業,這樣您可以限制用戶在prod env上運行的作業。

+0

我改進了問題 – PaulSmecker

相關問題