GitHub Actions环境变量在.NET集成测试中失效问题排查与解决
问题描述
我希望在GitHub Actions CI/CD流水线中为我的.NET API运行集成测试。本地通过用户机密(user-secrets)获取API Key来授权访问API,一切正常。
验证API Key的代码如下:
public bool isKeyValid(string userApiKey) { var apiKey = Environment.GetEnvironmentVariable("X-API_Key") ?? string.Empty; return userApiKey == apiKey; }
我在GitHub Actions中设置环境变量的配置如下:
jobs: test: runs-on: ubuntu-latest env: X-API_Key: ${{ secrets.X_API_KEY }}
但应用日志显示请求头中不包含X-API_Key,尝试改用_configuration.GetValue<string>("X-API_Key")获取值也无效。我已仔细检查命名及拼写,确认没有错误,且出于安全原因,GitHub Actions中机密会显示为***,无法直接查看值是否正确。
问题解决
后来发现问题出在集成测试设置请求头的代码上,我错误地从错误的环境变量取值:
_client.DefaultRequestHeaders.Add("X-API_Key", Environment.GetEnvironmentVariable("ApiKey"));
只需修改GitHub Actions中的环境变量配置,将变量名改为ApiKey即可:
env: ApiKey: ${{ secrets.X_API_KEY }}
内容的提问来源于stack exchange,提问作者Sergio Alifano
相关产品推荐
相关产品推荐

