处理GitHub Actions 添加环境变量这类问题时,先确认目标场景,再按步骤核对配置或玩法细节。
在 GitHub Actions 中,环境变量是工作流(workflow)的步骤中可用的键值对。你可以为整个工作流、特定的任务(job)或特定的步骤(step)定义环境变量。
在这个 Lab 中,你将学习如何:
这个 Lab 基于你在先前 Lab 中创建的仓库。你将克隆 github-actions-demo 仓库并创建一个使用环境变量的工作流。
在这一步中,你将克隆仓库并创建一个带有全局环境变量的新 GitHub Actions 工作流文件。
1. 在你的 github-actions-demo 的 GitHub 仓库页面上,点击绿色的 Code 按钮。
2. 确保选择了 HTTPS 标签页,并复制该 URL。它应该看起来像 https://github.com/your-username/github-actions-demo.git。
3. 在 LabEx 环境中打开终端。默认路径是 ~/project。
4. 使用 git clone 命令下载仓库。将 your-username 替换为你真实的 GitHub 用户名。
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
5. 进入克隆的仓库:
cd ~/project/github-actions-demo
6. 在 .github/workflows 目录下创建一个名为 env-demo.yml 的新文件:
touch .github/workflows/env-demo.yml
7. 在 WebIDE 中打开 .github/workflows/env-demo.yml 并添加以下内容。这定义了工作流的名称、触发事件(push)以及带有名为 GREETING 的变量的 env 部分。
name: Environment Variable Demo
on: [push]
env:
GREETING: "Hello"
在此步骤中,你将定义一个 job 和一个 step 来使用你创建的环境变量。你在工作流文件(workflow file)中使用 ${{ env.VARIABLE_NAME }} 语法来访问环境变量。
在 WebIDE 中打开 .github/workflows/env-demo.yml 文件,并将以下内容追加到文件末尾:
jobs:
print-greeting:
runs-on: ubuntu-latest
steps:
- name: Print Greeting
run: echo "${{ env.GREETING }}, World!"
你的完整文件应如下所示:
name: Environment Variable Demo
on: [push]
env:
GREETING: "Hello"
jobs:
print-greeting:
runs-on: ubuntu-latest
steps:
- name: Print Greeting
run: echo "${{ env.GREETING }}, World!"
在这一步,你将提交新的工作流文件并将其推送到 GitHub。推送此文件将使工作流在 GitHub Actions 中注册,并触发第一次运行。
1. 确保你位于仓库目录中:
cd ~/project/github-actions-demo
2. 暂存工作流文件:
git add .github/workflows/env-demo.yml
3. 提交更改:
git commit -m "Add workflow with environment variable"
4. 将更改推送到 GitHub 上的远程仓库:
git push
关于身份验证的注意事项:
当你运行 git push 时,WebIDE 会自动提示你进行身份验证。请遵循以下详细步骤:
隐私声明: WebIDE 会请求完全访问你的 GitHub 账户以进行身份验证。你无需担心隐私问题——在当前实验(lab)完成后,LabEx 虚拟机将立即销毁,你的凭证和授权信息不会被保留。
该工作流被配置为在 push 事件上运行。尽管上一次推送已经触发了工作流,但让我们看看更新环境变量并再次触发它有多么简单。
1. 在 WebIDE 中打开 .github/workflows/env-demo.yml。
2. 将 GREETING 的值从 "Hello" 更改为 "Hi"。
env:
GREETING: "Hi"
3. 提交并推送此更改:
git add .github/workflows/env-demo.yml
git commit -m "Update greeting variable"
git push
关于身份验证的注意事项:
如果你最近没有进行身份验证,当你运行 git push 时,WebIDE 会自动提示你进行身份验证。请遵循与上一步中描述的相同的身份验证步骤。
隐私声明: WebIDE 将请求对你的 GitHub 账户的完全访问权限用于身份验证目的。你无需担心隐私问题——在你完成当前实验(lab)后,LabEx 虚拟机将立即销毁,并且你的凭证和授权信息不会被保留。
这次推送将触发工作流的新一次运行,使用更新后的变量。
推送代码后,工作流将自动在 GitHub 上触发。你可以查看工作流运行日志,以验证环境变量是否被正确使用。
注意: 当你推送代码时,如果仓库中有多个工作流文件,可能会触发多个 Actions。请通过检查左侧边栏中的工作流名称或使用右侧的工作流运行列表来识别正确的工作流运行。
你应该会看到命令执行结果:
Run echo "Hi, World!"
echo "Hi, World!"
shell: /usr/bin/bash -e {0}
Hi, World!
请注意,${{ env.GREETING }} 已被其新值 Hi 替换。

在这个实验(Lab)中,你已成功创建了一个使用环境变量的 GitHub Actions 工作流。你学会了如何:
环境变量对于管理在不同环境或运行之间可能发生变化的配置值至关重要,而无需更改硬编码的命令逻辑。