我正在使用Gitlab CI / CD将.netcore应用程序部署到AWS Beanstalk。 使用CI / CD管道设置中定义的变量部署到不同环境时,如何更新.netcore应用程序中的appSettings.json值?
Azure DevOps有一个我非常喜欢的JSON variable substitution feature。
GitHub Actions也可以hook into this feature
如何使用Gitlab CI / CD实现此目标?
我想使用这种部署方法,因为
如果在Gitlabs中无法做到这一点,建议的最佳实践是什么?
谢谢
答案 0 :(得分:1)
我使用相同的解决方法。我在几个月前提交了一个关于这个的问题: https://gitlab.com/gitlab-org/gitlab-foss/-/issues/78486
我最近在 gitlab 论坛上谈到了这个:
https://forum.gitlab.com/t/use-variables-per-branch-in-gitlab/43685
不幸的是,目前似乎没有一个好的/干净的解决方案。
所以我使用了解决方法: 1:对变量使用环境作用域,这样同一个变量可以有不同的值(对于测试/生产环境) 2:在gitlab-ci.yml中定义jobs中的环境和分支 3:创建一堆 sed one liner 来进行搜索/替换..
称其为丑陋,称其为低级,但我搜索了一个不错的/干净的/gitlab 原生解决方案,但没有找到。
答案 1 :(得分:0)
我在这里用gitlab做类似的事情,解决方案是构建一个shell脚本,该脚本在开始部署工作之前先从变量值中替换一些字符串
类似的东西
script:
- sed -i 's/STRING_TO_REPLACE/$GITLAB_VARIABLE/g' file.json
只需注意正确转义json引号即可