GitHub Actions:env:在env部分内使用预定义的环境变量作为右侧值

11

我想在我的main.yml文件的顶层env部分声明一些环境变量,这些变量的值使用了一些预定义环境变量,例如在GitHub Actions文档中记录的变量。但是,似乎我不能在env部分的右侧使用那些预定义变量。例如:

env:
  resourceGroup: ${GITHUB_RUN_ID}${GITHUB_RUN_NUMBER}

有没有办法使任何需要 ${resourceGroup} 的步骤都能够在不必在每个步骤中手动定义它的情况下获得它?

3个回答

32

我尝试了以下两种方法。

env:
  resourceGroup1: ${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}
  resourceGroup2: ${{ github.run_id }}-${{ github.run_number }}

jobs:
  foo:
    runs-on: ubuntu-latest
    steps:
      - name: test1
        run: echo ${{ env.resourceGroup1 }}
      - name: test2
        run: echo ${{ env.resourceGroup2 }}

两种情况下,结果都被正确获得。

然而,在作为结果的env情况下,前者尚未被评估。也许您可以使用后者。

enter image description here

enter image description here


啊,你说得对。他使用的语法是不正确的! - Josh Wulf


0

可以的。我创建了一个 GitHub Action,可以帮你完成这个任务:Add Env vars

在工作流程中将其用作第一步,并将 JSON 字符串化的环境变量作为 map 参数传递。它们需要为每个作业设置 - 它们仅会为作业中的所有后续步骤设置。

以下是使用 Add Env vars 的测试案例:

  test:  
    runs-on: ubuntu-latest
    steps:
      - name: Setup env
        uses: jwulf/add-env-vars-action@master
        with:
          map: '{"resourceGroup1": "${{ github.run_id }}-${{ github.run_number }}", "resourceGroup2": "${{ github.run_id }}-${{ github.run_number }}"}'   
      - name: test1
        run: echo ${{ env.resourceGroup1 }}
      - name: test2
        run: echo ${{ env.resourceGroup2 }}

2
这是“我希望所有读者都过得愉快。” - 我就像,“这个家伙。我要构建它。” - Josh Wulf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接