带有 Github Actions 的 env 文件
Posted
技术标签:
【中文标题】带有 Github Actions 的 env 文件【英文标题】:env file with Github Actions 【发布时间】:2021-05-20 02:49:12 【问题描述】:我正在使用 React 和 firebase。我有一个 .env
文件,其中我的秘密存储在项目的根目录中。
如何访问 GitHub 工作流 yml 文件中的.env
文件。
作为最佳实践,我应该如何进行?
【问题讨论】:
【参考方案1】:不要这样做
将其签入您的 GitHub 项目是一个非常糟糕的主意。在那里增加了重点,因为一旦密钥在您的 git 存储库中,您基本上就会遇到巨大的麻烦,并且撤消是一个巨大的麻烦。您永远不会,永远想要将密钥提交到您的存储库。只是不要。1
相反,您需要做的是在您的组织/个人级别使用 GitHub Secrets,它们可以默认应用于您的项目,或者每个项目。这些可以在 GitHub 操作中使用,例如:
$ secrets.SECRET_NAME
这些将根据秘密值被替换。
GitHub Secrets 就像您的.env
文件变量的安全2 版本。
1 您可能认为拥有一个私有存储库可以保护您,但事实并非如此。其他团队成员可能会下载此文件并无意中将其推送到其他地方。你可能会在不知不觉中开源它。错误的发生是因为您假设您永远不会公开这些密钥。
2 当然,这些仅与 GitHub 一样安全,并且即使 GitHub 很难随便看到它们,也可能被具有足够高访问权限的人暴露。
【讨论】:
感谢您的回答。我将我的.env file
机密添加到 GitHub 机密中,并将其命名为 REACT_APP_API_KEY
。这是我的.yml
文件.yml。但我遇到了我在之前问过auth/invalid-api-key 的问题中描述的相同问题
你应该将各个环境变量拆分为不同的秘密,但我想你也可以把整个东西都塞进去。【参考方案2】:
您永远不应该使用密钥提交 .env 文件。
为此,您可以使用GitHub encrypted secrets。
【讨论】:
感谢您的回复。但我遇到了与here 描述的相同问题。如果需要,您可以找到我的.yml。 另外,我没有将我的 .env 文件提交到 Github。实际上,当检测到更改时,我正在使用 Github 操作自动构建并部署到 firebase。但似乎 Github 操作没有提供我的秘密,这就是为什么当我访问托管 URL 时它给我一个错误说Your API key is invalid, please check you have copied it correctly.
以上是关于带有 Github Actions 的 env 文件的主要内容,如果未能解决你的问题,请参考以下文章
Github Actions - 如何使我的 env 变量(存储在 .env 文件中)在我的工作流程中可用
如何在 GitHub Actions 中使用 bash 表达式设置 env var?
在 Github Actions 中注入 .env.local 文件或自定义环境变量集到 yarn build