我的 appSettings.json 中的 Gitlab CI/CD 变量替换

Nat*_*Liu 7 gitlab gitlab-ci

我正在使用 Gitlab CI/CD 将我的 .netcore 应用程序部署到 AWS Beanstalk。使用 CI/CD 管道设置中定义的变量部署到不同环境时,如何更新 .netcore 应用程序中的 appSettings.json 值?

Azure DevOps 有一个我非常喜欢的JSON 变量替换功能。

GitHub Actions 也可以挂钩此功能

如何使用 Gitlab CI/CD 实现这一目标?

我想使用这种部署方法,因为

  1. 我不必在我的存储库中存储敏感的生产配置值。值将通过 CI/CD 管道中的屏蔽变量设置进行更新。
  2. 每次部署到新环境时,我不必重建我的工件。

如果这不能在 Gitlabs 中完成,推荐的最佳实践是什么?

谢谢

Ser*_*aka 9

我在这里用 gitlab 做了类似的事情,解决方案是构建一个 shell 脚本,在开始部署作业之前替换变量值中的一些字符串

像这样的东西

script:
  - sed -i 's/STRING_TO_REPLACE/$GITLAB_VARIABLE/g' file.json
Run Code Online (Sandbox Code Playgroud)

只要注意正确转义 json 引号即可使之成为可能

  • 这实际上是一个很好的建议,但最终它有点混乱,尤其是处理整个数据库连接字符串......所以最终我转而使用 Github (2认同)