问题描述
我一直在努力写这篇文章,所以请多多包涵。尝试并尽可能清楚: 设置:
- 有3个分支(主/开发/阶段)的Github存储库
- 每个分支都有唯一的dotenv文件
- 回购具有VueJS代码(但也可以是laravel)
现在,使用GitHub Actions,我们根据分支将其部署到其他域。
我无法解决的是如何最好地处理不同的dotenv文件。在构建过程中,使用dotenv来构建最终产品。出于明显的原因,我很想在GitHub Secret中保留尽可能多的env文件内容,但是我不确定是否可行。另一个选择是基于分支具有3个dotenv文件,但这只会使它们保持同步而增加了复杂性和混乱性。
处理此问题的最佳方法是什么,以便每次部署都在dotenv文件中获得正确的设置?
解决方法
免责声明:我不了解dotenv的最佳做法。
如果您的机密大于允许的64 KB,则可以按照Limits for secrets的说明进行操作,大致是这样:
-
加密您的秘密:
gpg --symmetric --cipher-algo AES256 .env
-
将密码短语存储为机密,例如
LARGE_SECRET_PASSPHRASE
-
将加密文件添加到存储库中,例如作为
.env.gpg
-
要在工作流程中解密,请运行类似的
run: | gpg --quiet --batch --yes --decrypt \ --passphrase=${{ secrets.LARGE_SECRET_PASSPHRASE }} \ --output .env .env.gpg