返回

在 GitHub Actions 中配置 Spring Boot 项目的环境变量,解决常见问题

java

GitHub Actions 中为 Spring Boot 项目配置环境变量

在使用 GitHub Actions 构建和运行 Spring Boot 项目时,开发者有时需要在构建过程中设置环境变量来访问敏感信息,例如 API 密钥或数据库凭证。本文将引导你逐步了解如何在 GitHub Actions 中为 Spring Boot 项目设置环境变量,并解决常见的故障排除问题。

问题场景

想像一下这样一个场景,你在使用 GitHub Actions 在 Spring Boot 项目中构建和运行测试。但是,构建过程因一个要求环境变量的 Bean 而失败。该 Bean 负责加载必要的凭证,例如 Google JSON 凭证,用于连接 Firebase 服务。

设置环境变量的方法

有几种方法可以在 GitHub Actions 中设置环境变量,包括:

1. 在工作流文件顶部设置环境变量

在工作流文件的最上方,使用 env 设置环境变量。例如:

env:
  GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}

2. 在工作流中创建单独的步骤设置环境变量

在工作流文件中,创建一个名为 "Set Environment Variables" 的单独步骤来设置环境变量。例如:

steps:
  - name: Set Environment Variables
    run: |
      echo "GOOGLE_CREDENTIALS=${{ secrets.GOOGLE_CREDENTIALS }}" >> "$GITHUB_ENV"

3. 在 Maven 步骤中设置环境变量

如果使用 Maven 进行构建,可以在 Maven 步骤中直接设置环境变量。例如:

steps:
  - name: Build with Maven
    env:
      GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
    run: mvn clean install

故障排除

如果你遇到构建失败或环境变量未正确设置的问题,请检查以下故障排除步骤:

  • 确保密钥名称与 GitHub Actions 工作流文件中引用的名称相同。
  • 确认 GitHub Actions 工作流有权访问密钥存储库。
  • 检查密钥值是否是有效的 JSON 格式。
  • 尝试重新启动 GitHub Actions 工作流。

总结

通过遵循上述方法,你可以成功地在 GitHub Actions 中为 Spring Boot 项目设置环境变量。这让你能够访问机密信息,而无需将它们硬编码到代码中。

常见问题解答

  1. 如何设置多个环境变量?
    env 字典中,你可以按名称添加多个环境变量及其值。

  2. 可以从 GitHub Actions 工作流外引用环境变量吗?
    是的,可以在后续步骤中使用 $GITHUB_ENV 变量引用环境变量。

  3. 如何获取机密值而不将其记录到工作流日志中?
    使用 --secret 选项指定 env 值时,可以隐藏机密值。

  4. 我的环境变量不起作用,该怎么办?
    检查语法、拼写错误,并确保工作流有权访问密钥存储库。

  5. 如何调试环境变量?
    在工作流中添加 debug 步骤,并使用 echo 命令输出环境变量的值。