github actions 中的环境变量

May*_*dam 18 github environment-variables github-actions building-github-actions

我想将 Maven 图像版本作为 env 变量传递,但是当我尝试访问该 env.MAVEN_VERSION 变量时出现错误

错误 - 工作流程无效。.github/workflows/Merge.yaml(第 13 行图像:)无法识别的命名值:“env”。位于表达式中的位置 1:env.MAVEN_VERSION

Yaml 文件 ---

on:
  push:
    branches: [ master ]

env:
  MAVEN_VERSION: maven:3.8.6-jdk-11
  
jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: ${{ env.MAVEN_VERSION }}
    steps:
    - name: Env Variable
      run: echo ${{ env.MAVEN_VERSION }}
Run Code Online (Sandbox Code Playgroud)

rie*_*ann 17

虽然env不可用,但以前作业的输出是可用的。考虑下面的例子

on:
  push:
    branches: [ master ]

env:
  MAVEN_VERSION: maven:3.8.6-jdk-11
  
jobs:
  prepare-image:
    runs-on: ubuntu-latest
    steps:
       - run: echo "null"
    outputs:
      image: ${{ env.MAVEN_VERSION }}

  build:
    runs-on: ubuntu-latest
    needs: [prepare-image]
    container:
      image: ${{ needs.prepare-image.outputs.image }}
    steps:
    - name: Echo output
      run: echo ${{ needs.prepare-image.outputs.image }}
Run Code Online (Sandbox Code Playgroud)

  • 我必须在“准备图像”作业中添加一个占位符步骤。```steps` 中没有定义任何步骤,并且 `uses` 中没有调用任何工作流程来执行以下作业:prepare-image``` (7认同)