github 操作多个 dotenv 文件
github actions multiple dotenv files
我一直在努力写这篇文章,所以请耐心等待。我会尽量说清楚:
设置:
- Github 有 3 个分支的回购协议 (Master/Development/Staging)
- 每个分支都有一个唯一的dotenv文件
- Repo 有 VueJS 代码(但也可以是 laravel)
现在,使用 GitHub 操作,我们根据分支部署到不同的域。
我无法解决的是如何最好地处理不同的dotenv 文件。在构建期间,dotenv 用于构建最终产品。理想情况下,出于显而易见的原因,我想将尽可能多的 env 文件内容保存在 GitHub 秘密中,但我不确定这是否可能。另一种选择是拥有 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
我一直在努力写这篇文章,所以请耐心等待。我会尽量说清楚: 设置:
- Github 有 3 个分支的回购协议 (Master/Development/Staging)
- 每个分支都有一个唯一的dotenv文件
- Repo 有 VueJS 代码(但也可以是 laravel)
现在,使用 GitHub 操作,我们根据分支部署到不同的域。
我无法解决的是如何最好地处理不同的dotenv 文件。在构建期间,dotenv 用于构建最终产品。理想情况下,出于显而易见的原因,我想将尽可能多的 env 文件内容保存在 GitHub 秘密中,但我不确定这是否可能。另一种选择是拥有 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