背景
自己老早之前基于hexo搭建了个人博客 尖椒土豆sss (gitee.io)
虽然hexo框架支持同时提交到github、gitee多平台,且github可以自动执行 actions 达到自动部署。但是gitee平台的 git pages 不能自动部署(需要花钱开通流水线 Gitee Go)。
这样每次我更新完博客提交代码,还得去gitee仓库手动更新部署,很是麻烦!
最近学习了CICD相关知识,想的优化一下这个步骤,实现提交代码自动同步及部署发布双平台, 具体实现的话参考这篇: vuepress项目自动同步github代码到gitee - 掘金 (juejin.cn)
这个过程也遇到了一些问题,此篇记录一下自己学习的过程,也希望能帮助到其他同学。
github个人令牌权限设置相关
repo:此权限将允许访问和操作仓库中的代码、分支和标签。workflow:此权限将允许管理工作流程,包括运行、取消和重新运行工作流程。read:packages和write:packages:如果您要使用 GitHub 的容器注册表或包注册表功能,则可能需要这些权限来读取和写入包。admin:org:如果您的 CICD 流程需要访问组织级别的资源,比如仓库或团队设置,您可能需要此权限。gist:如果您的 CICD 流程需要创建或访问 Gists,则可能需要此权限。
一般用于CICD的个人令牌 勾选 repo\workflow权限就可以了
密钥相关配置
github actions CICD时相关报错
错误1
- error: src refspec main does not match any
解决:
git branch -m master main
报错2
远程没有master 默认仓库的主分支是main,所以应该提交到 main
https方式提交gitee仓库失败
提示无法读取,没有这样的地址?
原因是 github 和 gitee 使用https携带个人令牌(token)提交时写法是不同的!
正确写法:
-
github
git push https://TOKEN@github.com/USERNAME/REPO.git BRANCH -
gitee(写法不同)
git push https://GITEE_USERNAME:TOKEN@gitee.com/GITEE_USERNAME/REPO.git BRANCH
修改 gitee 正确写法地址后提交成功
总结
遇到错误不要盲目解决,要仔细的多看几遍错误信息、查看相关语法是否正确,然后进一步排查解决问题。