使用 repo 机密在 gh 操作中创建 .env 文件
Posted
技术标签:
【中文标题】使用 repo 机密在 gh 操作中创建 .env 文件【英文标题】:Create .env file in gh action using repo secrets 【发布时间】:2021-09-08 03:22:49 【问题描述】:所以我在 github 存储库机密中有一个变量 prod_env_file
,我将整个 .env 键和值存储到其中。我正在尝试在 gh 操作中生成一个 .env 以引入 prod_env_file
。这是一个示例 .yml 代码:
env:
PROD_ENV_FILE: $ secrets.PROD_ENV_FILE
steps:
- name: Configure Env
run: |
touch .env
echo $PROD_ENV_FILE >> .env
但是,我的整个 prod_env_file 只是作为一个衬垫进入。访问 process.env.FIRST_ENV_VARIABLE
最终会包含 prod_env_file 的整个其余部分。有没有办法来解决这个问题?谢谢!
【问题讨论】:
你的意思是整个字符串都删除了换行符并连接到 .env 中?还是说只有PROD_ENV_FILE secret 的第一行被写入.env? 【参考方案1】:您需要确定环境变量的拆分方式。
如果它们被空格分开,像这样:
SECRET1=1 SECRET2=2 SECRET3=3
您可以使用tr 命令简单地将空格替换为新行:
echo "SECRET1=1 SECRET2=2 SECRET3=3" | tr " " "\n" >> .env
在您的 Github Actions 工作流程中:
echo $PROD_ENV_FILE | tr " " "\n" >> .env
这会将.env
文件保存为:
SECRET1=1
SECRET2=2
SECRET3=3
【讨论】:
以上是关于使用 repo 机密在 gh 操作中创建 .env 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Github 操作将 .env 机密添加到在 Firebase 托管上部署的 Nuxt 应用程序
maven-release-plugin 可以在两个远程存储库中创建标签吗?
如何在 GitHub Action 中使用 GitHub cli (gh) 向 Github 进行身份验证并创建 PR?