Я храню свою строку подключения в секретах приложения, и она работает, если я выполняю развертывание со своего компьютера.Теперь я хотел бы сохранить это значение как переменную GitlabCI и использовать его во время развертывания.Чтобы добиться этого, я сделал следующие шаги:
Создал переменную CONNECTION_STRING в GitlabCI
Изменен .gitlab-ci.yml
для использования этой переменной
before_script:
- 'dotnet user-secrets set "ConnectionString" %CONNECTION_STRING%'
build:
stage: build
script:
- 'dotnet build -c Release /p:DeployOnBuild=true /p:PublishProfile=Properties/PublishProfiles/MyPublishProfile.pubxml'
Модифицированный Startup.cs
класс для использования этого секрета
private IConfiguration SecretConfiguration { get; }
public Startup(IConfiguration configuration) {
SecretConfiguration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddDbContext<StudentRepository>(options =>
options.UseMySQL(SecretConfiguration["ConnectionString"]));
services.AddMvc();
}
Развертывание прошло успешно, но соединение не установлено должным образом.Когда я нажимаю конечную точку, которая ищет что-то в базе данных, я получаю
System.ArgumentNullException: значение не может быть нулевым.Имя параметра: connectionString в Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty (строковое значение, строковое имя_параметра)