我试图通过在.gitlab-ci.yml文件中定义它们来替换AspnetCore使用的env变量。
appsettings.json文件如下所示:
"ConnectionStrings": {
"DatabaseConnection": "my-connection-string"
},
这是我尝试过的一些事情。
无效的Yml:
ConnectionStrings:
DatabaseConnection: "my-connection-string"
有效的Yml(无效):
"ConnectionStrings:DatabaseConnection": "my-connection-string"
"ConnectionStrings::DatabaseConnection": "my-connection-string"
对于最后两个错误,正如您所见,所有错误都转换为一个长字符串,而不是env变量的键值对:
/ bin / bash:第87行:导出: `ConnectionStrings :: DatabaseConnection = Server = mssql,1433; Database = MyDatabase; User Id = SA; Password = MyPassword; Trusted_Connection = False; MultipleActiveResultSets = True': 不是有效的标识符
我正在将Linux运行程序用于CI。
答案 0 :(得分:1)
似乎您要根据环境尝试替换数据库连接。您可以使用一些策略,例如配置变量
"ConnectionStrings": {
"DatabaseConnection": "$CONNECT_ENV"
},
在每个环境中,例如$CONNECT_INT, $CONNECT_QA, $CONNECT_PROD
可以有一个,并正确配置这些变量中的每一个(.gitlab-ci.yml的变量部分)
variables:
CONNECT_INT : "ConnectionStrings::DatabaseConnection=Server=mssql,1433;Database=DB_INTEGRATION_PROD;User Id=SA;Password=MyPassword;Trusted_Connection=False;MultipleActiveResultSets=True"
或者每个环境CONSTRING_INT.conf, CONSTRING_PROD
可以有多个文件,并根据环境进行替换。
或者您可以使用shell命令替换连接字符串。 https://unix.stackexchange.com/questions/226005/how-can-i-replace-a-specific-string-within-a-line-inside-a-text-file