16 使用环境变量与秘密之环境变量的介绍

在前一篇文章中,我们探讨了作业与步骤的条件执行,以及如何根据条件来控制工作流的执行。现在,让我们深入了解环境变量的使用,特别是如何在 GitHub Actions 中生成和使用环境变量,以及如何处理包含敏感数据的秘密变量。

1. 环境变量的概念

环境变量是一些存储在操作系统环境中的动态值,可以在应用程序运行时被读取。在 GitHub Actions 中,环境变量可以帮助我们传递配置和信息,增强工作流的灵活性。’’’关键’’’环境变量通常用于传递路径、版本或其他重要信息,可以在不同的作业和步骤之间共享。

2. 创建和使用环境变量

2.1 在工作流中定义环境变量

在 GitHub Actions 工作流中,可以在 jobssteps 中通过 env 关键字定义环境变量。环境变量的作用范围依赖于它们被定义的级别。

以下是如何在作业级别和步骤级别定义环境变量的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: Example Workflow

on: [push]

jobs:
build:
runs-on: ubuntu-latest
env:
GLOBAL_VAR: 'Hello, World' # 在该作业中定义环境变量
steps:
- name: Print Global Variable
run: echo $GLOBAL_VAR

- name: Set Step Variable
run: |
echo "LOCAL_VAR=This is a step-specific variable" >> $GITHUB_ENV
echo "LOCAL_VAR is set to $LOCAL_VAR"

在上面的示例中:

  • GLOBAL_VAR 是在作业级别定义的环境变量,可以在该作业的所有步骤中使用。
  • LOCAL_VAR 是通过将其输送到特殊的 $GITHUB_ENV 文件中创建的步骤级别环境变量,它仅在当前步骤后续的步骤中有效。

2.2 传递环境变量到步骤

若需要在不同的步骤间传递变量,可以使用 run 命令或者 with 参数。以下是一个示例:

1
2
3
4
5
6
- name: Set Local Variable
run: |
echo "MY_VAR=This is a variable" >> $GITHUB_ENV

- name: Use Local Variable
run: echo "The variable is $MY_VAR"

在这个例子中,MY_VAR 在第一个步骤中被设置,并在第二个步骤中打印。

3. 使用秘密环境变量

GitHub Secrets 提供了一种安全的方式来存储敏感信息,如 API 密钥或密码。为确保安全,秘密变量在运行时会被提供给工作流,但在日志中不会被打印。

3.1 添加和使用秘密变量

在 GitHub 上,您可以通过仓库的设置页面添加秘密变量。添加后,您可以在工作流中使用它们,如下所示:

1
2
3
4
5
6
7
8
9
10
11
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Use Secret
env:
SECRET_API_KEY: ${{ secrets.SECRET_API_KEY }} # 访问秘密变量
run: echo "Using API Key $SECRET_API_KEY"

在上面的代码中,SECRET_API_KEY 是我们在 GitHub 设置中添加的秘密变量。在工作流中,我们通过 ${{ secrets.SECRET_API_KEY }} 访问它。

4. 注意事项

  • 变量作用范围:请注意环境变量的作用范围,确保在合适的级别定义它们。
  • 安全性:切勿将秘密变量打印到日志中,避免泄漏敏感信息。
  • 使用 JSON 格式:如果需要传递多个环境变量,可以考虑使用 JSON 格式并将其解析。
1
2
3
4
5
6
7
8
- name: Set Multiple Variables
run: |
echo 'ENV_VARS="{\"var1\":\"value1\",\"var2\":\"value2\"}"' >> $GITHUB_ENV

- name: Use Multiple Variables
run: |
VAR1=$(echo $ENV_VARS | jq -r '.var1')
echo $VAR1

5. 小结

在本篇文章中,我们利用示例详细介绍了环境变量和秘密变量的使用。环境变量帮助我们在 GitHub Actions 工作流中灵活传递信息,而秘密变量则保障了我们敏感配置的安全。在下一篇文章中,我们将讨论环境变量与秘密的管理,包括如何有效地维护和使用这些变量。希望本篇的内容能帮助你更好地构建你的 CI/CD 流程!

16 使用环境变量与秘密之环境变量的介绍

https://zglg.work/github-actions-zero/16/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论