You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:13:26