Github 工作流程不从环境中读取变量

问题描述 投票:0回答:1

以下是我的简单 github 工作流程。它的目的是打印环境变量。

name: verify

on:
  workflow_dispatch:

jobs:
  read_env_variables:
    environment: build 
    runs-on: [ self-hosted, onprem_dae, docker ]
    steps:
      - name: cat on branch file
        run: |
          echo ${{ env.SOME_VARIABLE }}

我创建了一个名为“build”的环境。在这个环境中,我有一个名为

SOME_VARIABLE
的环境变量设置为 xyz

当工作流程被触发时,我期望回显值xyz,但实际值是“”。是不是少了点什么?

github-actions environment
1个回答
5
投票

您的问题与语法有关。

要使用

${{ env.SOME_VARIABLE }}
语法,您需要在工作流程、作业或步骤级别设置环境变量。

这是一个例子:

name: Environment Workflow

on:
  workflow_dispatch:

env:
  WORKFLOW_VARIABLE: WORKFLOW

jobs:

  job1:
    runs-on: ubuntu-latest
    env:
      JOB_VARIABLE: JOB
    steps:
      - name: Run Commands with various variables
        if: ${{ env.WORKFLOW_VARIABLE == 'WORKFLOW' }}
        env:
          STEP_VARIABLE: STEP
        run: |
          echo "Hello World"
          echo "This is the $WORKFLOW_VARIABLE environment variable"
          echo "This is the $JOB_VARIABLE environment variable"
          echo "This is the $STEP_VARIABLE environment variable"

现在,如果您想使用 环境机密进行部署如 Github 文档中所述,使用

job_id.environment
的语法会有所不同,因为您已经在遵循此文档

这是一个例子:

  job4:
    runs-on: ubuntu-latest
    environment: build
    steps:
      - name: Show repo env secret
        run: |
          echo ${{ secrets.REPO_ENV_SECRET }}

请注意,这个变量是一个秘密,因此您将无法通过步骤上的 echo 命令看到它(它将显示

***


如果您想看一下,这是我用来验证所有这些实现的工作流程:

© www.soinside.com 2019 - 2024. All rights reserved.