有什么方法可以将 dotenv 与 Bitbucket 管道一起使用?

Is there any way to use dotenv with Bitbucket Pipelines?

正如标题所说,有什么方法可以将 dotenv 与 Bitbucket 管道一起用于 CI 目的,同时仍将(可能多个)(.stage).env 添加到 .gitignore?

我知道 Pipeline 支持 environment variables, and that they can be referenced in bitbucket-pipelines.yml,但我不知道如何使用 dotenv 文件,并根据分支模式改变要使用的文件。

例如,我想提交给 develop 以使用 .test.env 变量,而提交给 master 则使用来自 .prod.env.[=21 的变量=]

也许我走错路了?尽管其他网站使用多个 .env 文件的示例,但 the library authors 不鼓励这种方法。我正在使用 Zeit Now 进行托管,所以我不能只将 .env 文件通过 SSH 连接到服务器上。

非常欢迎任何建议:-)

.env 文件中创建一个 base64 字符串。然后将此字符串复制到管道的环境变量中,请参见此处:https://confluence.atlassian.com/bitbucket/environment-variables-794502608.html

例如,你的内容现在定义在APP_ENV,那么你可以在你的管道配置文件中使用这一行:

echo $APP_ENV | base64 --decode --ignore-garbage > ./www/.env

现在保存了,因为除了你的管道容器本身,没有人知道你在这个文件中的秘密。

此方法可用于所有 .env 文件,也可用于暂存文件。 :)

重命名开发管道中的文件:

mv .test.env .env

或在您的主管道中:

mv .prod.env .env