Hexo博客实现自动化部署双平台问题记录

90 阅读2分钟

背景

自己老早之前基于hexo搭建了个人博客 尖椒土豆sss (gitee.io)

虽然hexo框架支持同时提交到github、gitee多平台,且github可以自动执行 actions 达到自动部署。但是gitee平台的 git pages 不能自动部署(需要花钱开通流水线 Gitee Go)。

这样每次我更新完博客提交代码,还得去gitee仓库手动更新部署,很是麻烦!

最近学习了CICD相关知识,想的优化一下这个步骤,实现提交代码自动同步及部署发布双平台, 具体实现的话参考这篇: vuepress项目自动同步github代码到gitee - 掘金 (juejin.cn)

这个过程也遇到了一些问题,此篇记录一下自己学习的过程,也希望能帮助到其他同学。

github个人令牌权限设置相关

image.png

  • repo:此权限将允许访问和操作仓库中的代码、分支和标签。
  • workflow:此权限将允许管理工作流程,包括运行、取消和重新运行工作流程。
  • read:packageswrite:packages:如果您要使用 GitHub 的容器注册表或包注册表功能,则可能需要这些权限来读取和写入包。
  • admin:org:如果您的 CICD 流程需要访问组织级别的资源,比如仓库或团队设置,您可能需要此权限。
  • gist:如果您的 CICD 流程需要创建或访问 Gists,则可能需要此权限。

一般用于CICD的个人令牌 勾选 repo\workflow权限就可以了

密钥相关配置

image.png

github actions CICD时相关报错

错误1

  • error: src refspec main does not match any

image.png

解决: git branch -m master main

报错2

image.png

远程没有master 默认仓库的主分支是main,所以应该提交到 main

https方式提交gitee仓库失败

image.png 提示无法读取,没有这样的地址?
原因是 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 正确写法地址后提交成功

image.png

总结

遇到错误不要盲目解决,要仔细的多看几遍错误信息、查看相关语法是否正确,然后进一步排查解决问题。