【问题标题】:How to have workflow specific environment in a GitHub workflow yml file如何在 GitHub 工作流 yml 文件中拥有特定于工作流的环境
【发布时间】:2020-03-12 21:56:20
【问题描述】:

我正在创建一个/.github/<workflow>.yml 并且正在与环境作斗争。

来自https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env

可用于工作流中所有作业和步骤的环境变量映射。您还可以设置仅可用于作业或步骤的环境变量。有关详细信息,请参阅jobs.<job_id>.envjobs.<job_id>.steps.env

当使用相同名称定义多个环境变量时,GitHub 使用最具体的环境变量。例如,步骤中定义的环境变量将在步骤执行时覆盖具有相同名称的作业和工作流变量。为作业定义的变量将在作业执行时覆盖同名的工作流变量。

来自https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-environment-variables

要设置自定义环境变量,您需要在工作流文件中指定变量。您可以使用 jobs.<job_id>.steps.envjobs.<job_id>.env, 和 env 关键字为步骤、作业或整个工作流定义环境变量。有关详细信息,请参阅“GitHub 的工作流语法”。

如何为整个工作流程(多个作业)设置环境变量?

【问题讨论】:

  • 您发布的内容似乎包含该答案,您能否通过minimal reproducible example 澄清问题?
  • 记录在案的完成此操作的方法不起作用...如果我在不是工作或步骤的上下文中使用 env 关键字,GitHub 会告诉我它是无效的 yml-文件...
  • 再次,给一个 MRE; edit问题要包含相关信息。

标签: github github-actions


【解决方案1】:
on: push

env:
 MY_ENV: value

jobs:

 job1:
  runs-on: ubuntu-latest
  steps:
  - run: echo "MY_ENV_1 = $MY_ENV"

 job2:
  runs-on: ubuntu-latest
  steps:
  - run: echo "MY_ENV_2 = $MY_ENV"

我 100% 确定这个可以工作,并且 95% 确定您会因为工作流的其他部分中的错误或一些小的语法错误(缺少空格,= 而不是 @ 987654323@ 声明变量时,值以非字母数字字符开头,并且不在'' 内等)。

错误报告页面当前已损坏(至少对我而言) - 整个消息都在一行中,除了开始之外,无法看到更多信息。如果您也遇到这种情况,请在您的浏览器中使用“检查元素”,这样您就可以看到它的全部荣耀。

【讨论】:

  • 经过验证的环境:在工作流程的顶部对我来说效果很好。
【解决方案2】:

如何为整个工作流程(多个作业)设置环境变量?

好吧,如果您想设置环境一次,则不能使用关键字env。否则,您在每个作业中设置环境,如下所示:

jobs:
 build:
  runs-on: ubuntu-18.04
  env: 
   - FOO: foo
   - BAR: bar

  steps:
   - uses: actions/checkout@v1
   - name: Do something

 test:
  runs-on: ubuntu-18.04
  env: 
   - FOO: foo
   - BAR: bar

  steps:
   - uses: actions/checkout@v1
   - name: Do something else

但这取决于你是否真的想做。 MRE 将不胜感激,如果它不是您所需要的,正如 jonrsharpe 所说。

【讨论】:

  • 好吧,我看不到创建 MRE 的目的,它只会导致无效的 yaml 文件...文档指出可以为工作流文件创建环境。这可能吗?如何?我在一个文件中有多个作业...这是不可能的,是否可以使工作流文件相互依赖?
  • 我们希望通过 MRE 看到您的工作流程来帮助您,我们不在乎结果。现在什么都看不见,情况很复杂。我在上面做了一个例子,向你展示了多个工作......
猜你喜欢
  • 2021-04-17
  • 2020-10-25
  • 2022-10-23
  • 2021-06-05
  • 2021-11-20
  • 2022-09-27
  • 2021-10-20
  • 1970-01-01
  • 2021-08-31
相关资源
最近更新 更多