记录github action自动部署hexo butterfly
前言
目前自动部署或者称之为持续集成的博客部署方式有两种,一是 travis-ci 部署,二是 github action 部署,前一种我使用时总是不能自动部署,需要我手动在其网站里 trigger a build,因此使用了第二种方式。
部署前准备
- 首先可以在本地运行正常;
- 为项目添加公钥与密钥;
- actions 里添加运行命令代码;
- 推送即可以得到。
遇到的问题
- 生成的网站地址过长?
- 自动部署失败?
- 部署成功,但是生成的网页是空白的?
本地运行
- 本地安装 npm install –save hexo-deployer-git,然后配置根目录下的_config.yml:
1 | deploy: |
- 本地部署到 github:
1 | hexo clean && hexo g && hexo d |
创建项目
- github 里创建一个空项目,名字起与账户名相同的前缀,如账户名是 maya1900,那么项目名称应该是 maya1900.github.io,前缀不能是别的名字,否则就会出现上述的第一个问题;
- 先在本地配置公钥与密钥,放到 github 的项目里;
- 可以将项目放在分支里,而部署出来的静态页面放在 master 里。即 push 到 github 前先切换分支,如 git checkout -b hexo,提交完代码,此时代码在 hexo 分支里
actions 部署
- 首先要把项目切换默认分支为 hexo 分支,在项目里的 setting–branch 里进行切换;
- 在 actions 里新建自己的 flow,点击上面的蓝字**==set up a workflow yourself #2196F3==** 即可:
1 | name: Deploy Blog |
- 然后这样就成功了,接下来 push 代码到 hexo 分支,actions 就会自动执行,等 build 成功就可以访问自己的页面了。
解决上面的问题
- 上面步骤有提到,不重复了;
- 部署失败按步骤走主要是配置密钥是否正确;
- 这个问题纠结了很久,结果是下载主题的时候,因为是使用 git clone,在主题目录中生成了.git 目录,和根目录的.git 冲突了,因此出现了网站访问白屏的问题。解决就删掉主题目录里的.git 文件夹,重新 Push 一次代码,网页就可以正常显示出来啦~~
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment