如何在GitHub工作流程yml文件中具有工作流程特定的环境

时间:2019-11-17 09:38:12

标签: github github-actions

我正在创建/.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的工作流语法”。

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

2 个答案:

答案 0 :(得分:0)

  

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

好吧,如果您想一次设置环境,则不能使用关键字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不是您所需要的,将不胜感激。

答案 1 :(得分:0)

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%确保由于工作流程其他部分的错误或某些次要的语法错误(缺少空格,=而导致“无效的工作流程”错误)声明变量时:的值,值以非字母数字字符开头,并且不在''内,依此类推。

错误报告页面当前已损坏(至少对我来说是这样)-整个消息都位于单行中,无法看到更多内容,而不仅仅是开始。如果您也遇到这种情况,请在浏览器中使用“检查元素”,以便在其所有功能中都能看到它。