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

如何在GitHub工作流yml文件中具有特定于工作流的环境,github,github-actions,Github,Github Actions,我正在创建一个/.github/.yml,正在与环境作斗争 从 可用于工作流中所有作业和步骤的环境变量的映射。还可以设置仅对作业或步骤可用的环境变量。有关更多信息,请参阅jobs..env和jobs..steps.env 当使用相同的名称定义多个环境变量时,GitHub将使用最特定的环境变量。例如,在执行步骤时,步骤中定义的环境变量将覆盖具有相同名称的作业和工作流变量。在作业执行时,为作业定义的变量将覆盖具有相同名称的工作流变量 从 要设置自定义环境变量,需要在工作流文件中指定变量。您可以使用j

我正在创建一个
/.github/.yml
,正在与环境作斗争

可用于工作流中所有作业和步骤的环境变量的映射。还可以设置仅对作业或步骤可用的环境变量。有关更多信息,请参阅
jobs..env
jobs..steps.env

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

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

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

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

嗯,如果要设置环境一次,则不能使用关键字
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
但这取决于你是否真的想这么做。如果这不是你所需要的,如前所述,A将不胜感激

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

嗯,如果要设置环境一次,则不能使用关键字
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
但这取决于你是否真的想这么做。如果这不是你所需要的,如前所述,A将不胜感激

我100%确信这一个有效,95%确信由于工作流的其他部分出错或一些小的语法错误(缺少空格,
=
而不是
当声明变量时,值以非字母数字字符开始,并且不在
'
内,等等),您将得到“无效工作流”错误

错误报告页面当前已断开(至少对我来说)-整个消息在一行中,除了一个开头之外,没有其他方法可以看到更多内容。如果您也是这样,请在浏览器中使用“inspect element”,这样您就可以看到它的所有优点

我100%确信这一个有效,95%确信由于工作流的其他部分出错或一些小的语法错误(缺少空格,
=
而不是
当声明变量时,值以非字母数字字符开始,并且不在
'
内,等等),您将得到“无效工作流”错误


错误报告页面当前已断开(至少对我来说)-整个消息在一行中,除了一个开头之外,没有其他方法可以看到更多内容。如果您也是这样,请在浏览器中使用“inspect element”,这样您就可以看到它的所有优点。

您发布的内容似乎包含了这个答案,您能用一个简单的例子来澄清这个问题吗?记录在案的实现方法不起作用。。。如果我在不是作业或步骤的上下文中使用env关键字,GitHub会告诉我这是一个无效的yml文件…再次,给出一个MRE;这个问题包含了相关的信息。你发布的内容似乎包含了这个答案,你能用一个简单的答案来澄清这个问题吗?记录在案的实现方法是行不通的。。。如果我在不是作业或步骤的上下文中使用env关键字,GitHub会告诉我这是一个无效的yml文件…再次,给出一个MRE;这个问题需要包含相关信息。我不认为创建一个只会导致无效yaml文件的MRE的目的。。。文档说明可以为工作流文件创建环境。这可能吗?怎样?我在一个文件中有多个作业。。。这是不可能的,是否有可能使工作流文件相互依赖?我们希望通过MRE查看您的工作流以帮助您,我们不关心结果。现在什么也看不见,情况变得复杂了。我在上面做了一个例子,向您展示了多个作业…我不认为创建一个只会导致无效yaml文件的MRE的目的。。。文档说明可以为工作流文件创建环境。这可能吗?怎样?我在一个文件中有多个作业。。。这是不可能的,是否有可能使工作流文件相互依赖?我们希望通过MRE查看您的工作流以帮助您,我们不关心结果。现在什么也看不见,情况变得复杂了。我在上面做了一个例子,向您展示了多个工作。。。。