【发布时间】:2020-12-02 16:31:03
【问题描述】:
我一直在努力写这个,所以请多多包涵。我会尽量说清楚: 设置:
- 具有 3 个分支的 Github 存储库(Master/Development/Staging)
- 每个分支都有一个唯一的 dotenv 文件
- Repo 有 VueJS 代码(但也可以是 laravel)
现在,使用 GitHub Actions,我们根据分支部署到不同的域。
我无法解决的是如何最好地处理不同的 dotenv 文件。在构建期间,dotenv 用于构建最终产品。理想情况下,出于显而易见的原因,我想将尽可能多的 env 文件内容保留在 GitHub Secret 中,但我不确定这是否可行。另一种选择是基于分支拥有 3 个 dotenv 文件,但这只会增加使它们保持同步的复杂性和混乱。
处理此问题的最佳方法是什么,以便每次部署都能在 dotenv 文件中获得正确的设置?
【问题讨论】:
-
您是否考虑过按照Limits for secrets 对整个dotenv 文件进行加密并在工作流程中使用秘密对其进行解密?
-
@BenjaminW 天哪,你摇滚!!你能把它变成官方答案吗,这样我就可以投票了……这太完美了!!!
-
这似乎是一个奇怪的场景,.env 文件通常不应该提交到存储库,它们应该存在并在每个环境中单独管理。您说过“在构建期间,dotenv 用于构建最终产品。”因此,也许您对此有一些很好的用例。请问是什么?
-
是的,所以在 git commit 上,Github Actions 运行命令来构建应用程序/站点,并在完成后将其部署到其位置(在本例中为 S3 静态网站托管)。所以使用上面提到的系统,我可以把它排除在 repo 之外,并使用 env 文件来部署/提供代码。
标签: laravel vue.js github github-actions phpdotenv