Environment Variable#

环境变量是常见的配置方式. GitHub Actions 支持三个级别的环境变量:

  1. Workflow 级别的环境变量, 所有的 Job 里都可以用. 可以在 YAML 文件中设置, 也可以在 settings 中设置.

  2. Job 级别的环境变量, 所有的下面的 Step 里都可以用. 只能在 YAML 文件中设置.

  3. Step 级别的环境变量, 只能在当前 Step 里用. 只能在 YAML 文件中设置.

环境变量常用语将 Job 参数化. 例如你有个 Job 叫 “deploy”, 你可以用环境变量 ENV_NAME 来指定要部署到哪个环境中.

这里提一句, 对 Workflow 参数化的关键技术是 on.workflow_call.inputs, 这个我们之后会在 Reuse Workflow 一节中详细说.

Sample Workflow Definition#

 1# ------------------------------------------------------------------------------
 2# Demonstrate how to define and use environment variables
 3#
 4# Reference
 5#
 6# - Variables: https://docs.github.com/en/actions/learn-github-actions/variables
 7# ------------------------------------------------------------------------------
 8name: 01_04_environment_variables
 9on:
10  workflow_dispatch:
11env: # workflow level env var
12  WORKFLOW_ENV_VAR: "this is a workflow env var"
13jobs:
14  build:
15    runs-on: ubuntu-latest
16    env: # job level env var
17      JOB_ENV_VAR: 'this is a job env var'
18    steps:
19      - name: build
20        env: # step level env var
21          STEP_ENV_VAR: this is a step env var
22        run: |
23          echo WORKFLOW_ENV_VAR = ${WORKFLOW_ENV_VAR}
24          echo JOB_ENV_VAR = ${JOB_ENV_VAR}
25          echo STEP_ENV_VAR = ${STEP_ENV_VAR}

Sample Workflow Run#

../../_images/Environment-Variable.png

Reference#