如何在Bamboo Specs中根据环境条件禁用ScriptTask任务
Bamboo Specs 按环境变量控制任务/步骤执行
单个任务的条件控制
要实现当环境变量bamboo.forge.environment.key等于test时跳过指定脚本任务,你可以利用Bamboo Specs的conditions方法添加运行时判断条件,无需手动设置enabled(false)(静态设置无法根据环境变量动态调整)。
修改后的代码示例
首先确保导入对应的条件类:
import com.atlassian.bamboo.specs.api.builders.condition.VariableNotEqualsCondition;
然后更新你的任务构建方法:
private static ScriptTask runStepFunctions() { return new ScriptTask() .description("Run Step Function") .inlineBody( "set -x \n" + // 填充你的脚本内容 "" ) .environmentVariables("...") .conditions() // 仅当环境变量不等于test时,任务才会执行 .add(new VariableNotEqualsCondition("bamboo.forge.environment.key", "test")); }
跳过整个步骤
如果需要在满足条件时跳过整个步骤(而非单个任务),可以将条件直接添加到步骤容器上:
import com.atlassian.bamboo.specs.api.builders.condition.VariableNotEqualsCondition; import com.atlassian.bamboo.specs.api.builders.task.TaskContainer; private static TaskContainer deploymentStep() { return new TaskContainer() .description("Deployment Step") .conditions() .add(new VariableNotEqualsCondition("bamboo.forge.environment.key", "test")) .tasks( runStepFunctions(), // 添加该步骤下的其他任务 otherTask() ); }
关键说明
- 条件是运行时判断的,会根据执行时的环境变量值动态决定是否执行任务/步骤,比静态设置
enabled更灵活。 - 变量名直接写
bamboo.forge.environment.key即可,不需要加${}包裹。 - 如果需求反过来(仅当变量等于test时执行),替换为
VariableEqualsCondition即可。
内容的提问来源于stack exchange,提问作者marcin2x4
相关产品推荐
相关产品推荐

