gpt4 book ai didi

.net-core - 如何配置 .net core 3.1 appsettings 以在 Github 操作上运行测试

转载 作者:行者123 更新时间:2023-12-04 09:43:39 26 4
gpt4 key购买 nike

我正在使用 .Net core 3.1 开发 Web API,尝试将其集成到 Github Actions 以在创建拉取请求时运行集成测试。

我正在使用 secrets manager在开发模式下存储我的 API token 和其他敏感数据

secret .json

{
"Firebase": {
"Login": "foo@bar.com",
"Password": "FooBar",
"Url": "foobar.firebaseapp.com "
},

}

在 GitHub 上,我尝试添加 Secrets( GitHub secrets = environment variables ),其名称与我在 secret JSON 上的名称相同,但没有奏效。
我创建的 GitHub secret 就像
(KEY - VALUE)
LOGIN - foo@bar.com
PASSWORD - FooBar

在我的测试类中,我在测试之前使用以下配置调用环境变量
public MyTestClass()
{
var builder = new ConfigurationBuilder()
.AddUserSecrets<MyTestClass>()
.AddEnvironmentVariables();

Configuration = builder.Build();
_settings = Configuration.Get<Settings>();
}

我的 .yml 看起来像
jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.300
- name: Nuget
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
env:
LOGIN: ${{ secrets.LOGIN }}
PASSWORD: ${{ secrets.PASSWORD}}
URL: ${{ secrets.URL}}

在 GitHub Actions 中执行时如何加载设置?

最佳答案

不确定我是否没有说明显的(你没有提到你如何启动测试应用程序),但 GitHub 的 secret != 环境变量。他们可以 是,如果用户想要,但它是 不是 自动完成。

- run: program.exe

在这种情况下,程序将不知道登录名/密码,因为它无法访问这些数据。

- run: program.exe
env:
LOGIN: ${{ secrets.LOGIN }}
PASSWORD: ${{ secrets.PASSWORD }}

在这种情况下,程序将知道登录名/密码,因为 secret 被“转换”为应用程序可以看到的环境变量。

- run: program.exe --login=${{ secrets.LOGIN }} --password=${{ secrets.PASSWORD }}

在这种情况下,程序将知道登录名/密码,因为 secret 是通过命令行参数传递的,应用程序可以看到。在这种情况下,环境变量保持不变。

另一种选择是将加密的 secrets.json 保存在存储库中,并在工作流运行时对其进行解密;见 docs详情。

关于.net-core - 如何配置 .net core 3.1 appsettings 以在 Github 操作上运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62220945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com