Skip to content

环境变量优先级 (#1038)

WARNING

所有实验性功能都可能 随时 发生破坏性变更或被移除。我们强烈建议您不要在生产环境中使用这些功能,它们仅用于测试和收集反馈。

DANGER

本实验会破坏以下功能:

  • 环境变量将优先于操作系统环境变量

INFO

要启用此实验,请设置环境变量:TASK_X_ENV_PRECEDENCE=1。查看我们的实验功能启用指南获取更多信息。

在此实验之前,操作系统变量优先级高于任务环境变量。本实验改变了优先级顺序,使任务环境变量优先于操作系统变量。

考虑以下示例:

yml
version: '3'

tasks:
  default:
    env:
      KEY: 'other'
    cmds:
      - echo "$KEY"

在此实验前运行 KEY=some task,输出会是 some;但在此实验后,输出将是 other

如果仍需要获取操作系统变量,可使用模板函数 env,如下所示:{{env "OS_VAR"}}

yml
version: '3'

tasks:
  default:
    env:
      KEY: 'other'
    cmds:
      - echo "$KEY"
      - echo {{env "KEY"}}

运行 KEY=some task,输出将为 othersome

与其他变量/环境变量类似,您也可以使用默认模板函数回退到给定值:

yml
MY_ENV: '{{.MY_ENV | default "fallback"}}'