准备
平台
使用GitHub, 利用GitHub Actions进行自动部署
首先得有一个GitHub账号, 另外中国大陆访问GitHub有时候会有亿点点慢, 所以科学上网可以准备一下.
本地步骤重现
在本地进行一次从环境到部署的全部步骤, 记录下来.
配置
创建一个仓库
为你的博客源文件建立一个仓库, 将source
文件夹commit(或者其它自定义的源文件文件夹), 这个仓库可以设为私有, 如果你更改过主题, 记得还要上传主题(themes)文件夹, 另外别忘了\_config.yml
和\_config.<theme>.yml
这两个配置文件.
如果感觉理解困难的话, 直接把整个项目打包吧.
使用.gitignore
将一些不需要的文件排除.
1 | public/* |
secrets
相当于在actions配置文件中使用的环境变量, 可以用来储存密钥之类的不方便在代码中出现的内容
使用Actions
在项目的Actions新建一个workflow.
1 | # This is a basic workflow to help you get started with Actions |
可能的问题
unknown block tag:
出现这个问题可能是跟主题有关, 也可能是和插件有关
- 在steps中合适位置加入
ls
命令来查看主题文件是否正确 - 检查环境配置是否安装完所有 hexo-tag 插件
rsync error
当出现rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender=3.2.3]
时, 检查部署服务器的文件夹权限, 重点检查报错的位置如:rsync: failed to set times on "/usr/share/nginx/html/.": Operation not permitted (1)
. 此处html/.
里的.
指代当前文件夹, 也就是html
文件夹, 检查该文件夹的权限.
Dependencies lock file is not found
安装nodejsError: Dependencies lock file is not found in /home/runner/work/
出现这个时, 删除workflow中相应位置的cache: npm
.
localsearch 样式异常
在本地生成的文件显示正常, 自动部署的显示异常, 排查问题后想起来可能是CDN的缓存, 清除缓存后显示恢复正常.
尝试过但失败了
本想在自己的服务器上生成文件, 利用Actions ssh连上服务器运行提前写好的脚本, 但遇到一些问题.
私有仓库的密码问题
git pull一个私有仓库的时候需要输入用户名和密码, 这个与自动部署完全不兼容, 网上的解决方案git config --global user.name=
不可行.
密码是需要在网站上自己获取的personal access token
.
在网站服务器上生成
失败理由同上一个问题, 因为没办法解决输入密码问题, 所以没办法自动pull
不考虑设置成公共仓库, 因为之前就是用的公共仓库