【问题标题】:Change variable based on current stage根据当前阶段更改变量
【发布时间】:2020-01-28 18:39:12
【问题描述】:

我的无服务器应用程序有两个阶段:开发(在分支开发上)和主控(在分支主控上)。 它有一个名为 config.js 的文件,如下所示:

API_URL: api.prod.some-server.com

但是当我在develop 分支/开发阶段环境中时,我希望“prod”更改为“dev”。
如果我在更改当前分支/dev_stage 时来回更改 API_URL (prod -> dev),那会有点累。

有没有办法自动化这个?
谢谢

【问题讨论】:

    标签: node.js amazon-web-services gitlab serverless staging


    【解决方案1】:

    有没有可能自动化这个?

    是的:您需要版本config.js(保密),而是生成它(其中包含正确的值)。

    生成脚本将确定签出分支的名称:

    branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
    

    或者(自Git 2.22, Q2 2019

    branch=$(git branch --show-current)
    

    这意味着你可以:

    • 版本只有一个模板文件config.js.tpl
    • 以分支命名的版本值文件:config.js.devconfig.js.master:由于它们不同,因此在合并或切换分支时不会出现合并问题。

    最后,您将(在.gitattributes declaration 中)注册一个content filter driver

    (图片来自“Customizing Git - Git Attributes”,来自“Pro Git book”)

    与模板文件 (config.js.tpl) 关联的 smudge 脚本将通过查看右侧 config.js.<branch> 值文件中的值来生成(在 git checkout 上自动)实际的 config.js 文件。
    生成的实际config.js 文件仍然被忽略(由.gitignore)。

    在“git smudge/clean filter between branches”查看完整示例。

    【讨论】:

      猜你喜欢
      • 2014-07-08
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多