php - Github Actions CI/CD 工作流程中的 .env 文件:如何将这些文件提供到工作流程中
问题描述
我将 Github Actions 工作流用于 Node 和 PHP 项目的 CI/CD 流程。
在一个工作流程中,我将我的存储库克隆到 Github Actions runner 虚拟机中。然后,为了在工作流中运行测试,我必须.env
在克隆的存储库中拥有该文件。
问题是我的.env
文件不是存储库的一部分(这是普遍的做法)。
为了解决这个问题,我使用了我认为的解决方法:设置MY_PROJECT_ENV
Github Action sercret 变量,手动将我的文件内容放在那里.env
,然后.env
使用 Linux console 在我的工作流程中动态创建文件echo "${{ secrets.MY_PROJECT_ENV}}" > .env
。这行得通。
但我想知道还有其他方法可以.env
向 Github Actions 工作流程提供文件吗?
解决方案
我现在知道有 3 种方法可以做到这一点。一年后,我在另一个问题中回答了我自己的问题。看那边。
为了 SO 规则和可查找性,我在这里做了一个总结。
您将
.env
文件保存在存储库中。使用dotenv 操作将文件读入工作流程。您将文件保留在存储库之外。那么你有两种获取
.env
变量的方法:2.1。正如我在上面的问题中所写,手动将文件内容复制到 GitHub 操作秘密变量,然后在您的工作流程中
.env
从该变量创建文件。2.2. 使用 GitHub Actions API创建/更新秘密:在你的机器上编写 NodeJS 脚本(你可能还是使用 Webpack、Gulp 或类似的 Node 东西,所以你已经安装了 Node)。
该脚本应读取本地
.env
文件并将其内容写入 GH 机密。当然,您可以使用您在项目中使用的任何语言编写自定义控制台实用程序来执行此操作。
就这么简单:)
推荐阅读
- python - 即使凭据错误,ActiveMQ stomp 传输也允许发布消息
- python - 根据字符串的位置计算地图上的字符串元素并用计数填充网格
- python - 了解导入和包的命名
- google-drive-api - 云端硬盘文件权限资源(2019 年 1 月)是否发生了变化?
- css - CSS - 在扩展时将滚动位置保持在内容的末尾
- velo - 如何在 Wix 上的图层文件夹中添加元素
- python - 使用 python 和 yahoo Finance(等等)我如何在 X 天的交易日内获取资产价格的数据
- r - 通过data.table roll='nearest'函数合并两组数据
- python - PyGObject 无论如何都会修复按钮大小。相应地打破标签
- web-services - 通知微服务