如何在GitHub Action中使用Java的System::getenv读取环境变量?
在GitHub Actions中让Java通过System::getenv读取环境变量的解决方案
1. 确认仓库环境变量配置位置
确保你的登录账号、密码是配置在仓库的 Settings -> Secrets and variables -> Actions 下:
- 敏感信息(如密码)存在
Secrets标签页(加密存储) - 非敏感信息存在
Variables标签页(明文存储)
2. 在GitHub Actions工作流中注入环境变量
需要在工作流文件(如.github/workflows/test.yml)的测试步骤中,将仓库配置的Secrets/Variables映射为当前运行环境的环境变量,示例如下:
name: Playwright 自动化测试 on: [push, pull_request] jobs: run-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 配置JDK环境 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: 执行测试用例 env: # 从仓库Secrets中读取并注入 LOGIN_ACCOUNT: ${{ secrets.LOGIN_ACCOUNT }} LOGIN_PWD: ${{ secrets.LOGIN_PWD }} # 若使用仓库Variables,替换为vars.XXX # LOGIN_ACCOUNT: ${{ vars.LOGIN_ACCOUNT }} run: mvn test # 或gradle test,根据你的构建工具调整
3. Java代码中读取环境变量
直接使用System.getenv()方法读取,注意变量名要和工作流env块中的键完全一致(大小写敏感):
// 读取环境变量 String loginAccount = System.getenv("LOGIN_ACCOUNT"); String loginPwd = System.getenv("LOGIN_PWD"); // 后续用于Playwright登录逻辑 playwright.context().newPage().fill("#username", loginAccount); playwright.context().newPage().fill("#password", loginPwd);
4. 常见问题排查
- 核对工作流中
env块的变量名、仓库配置的Secrets/Variables名称、Java代码中读取的名称三者完全一致,包括大小写和拼写。 - 若使用了环境级Secrets(绑定特定环境),需要在工作流的
jobs节点下添加environment字段指定对应环境:jobs: run-tests: runs-on: ubuntu-latest environment: test-env # 对应你配置环境变量的环境名称 steps: # ... 其他步骤 - 可在工作流中添加调试步骤,确认环境变量是否正确注入(注意不要打印敏感信息):
- name: 验证环境变量注入 run: echo "登录账号: $LOGIN_ACCOUNT"
内容的提问来源于stack exchange,提问作者ThrowsError
相关产品推荐
相关产品推荐

