记一下 Github CI 环境变量使用 Secrets 以及上传大文件 LFS 踩到的坑

记一下 Github CI 环境变量使用 Secrets 以及上传大文件 LFS 踩到的坑

Tags
CI
Web Dev
Language
CN
Published
December 11, 2023
Author
Miles Zhang
GitHub CI 在使用 secrets 时,如果查看工作流日志,看到的记录是如下空串,说明没有正确配置好 yml 文件,需要在 workflow_call 类型的工作流中配置 secrets: inherit 它是用来指定一个工作流是否应该继承仓库的 Secrets。
notion image
当一个工作流被其他工作流作为 reusable workflow 调用时,它可以通过设置 secrets: inherit 来获取调用它的工作流的上下文中的 Secrets。
使用 secrets: inherit 可以确保重用的工作流能够访问主工作流中定义的所有 Secrets,而不需要显式地在每个 reusable workflow 中声明它们。这样做既方便又安全,因为它减少了需要在多个地方维护 Secrets 的需求。
notion image
在这个例子中,draft_release 作业将调用同一个仓库中的另一个工作流文件 release.yml,并传递一个输入。通过设置 secrets: inheritrelease.yml 将能够访问调用它的工作流所拥有的所有 Secrets。
 
另外一个坑是上传大文件到代码仓库,出现权限拒绝的问题,这种情况出现是因为你用 cmd 之类的终端而不是 Git Bash 去提交,在提交大文件时,Git Bash 会弹出一个输入密码的框,而 cmd 不会弹出,应该算是个 bug。
git push Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa': Uploading LFS objects: 0% (0/1), 0 B | 0 B/s, done. batch request: git@github.com: Permission denied (publickey).: exit status 255 error: failed to push some refs to 'github.com:zmzimpl/chrome-power-app.git