「技术」使用 Git Hooks 完成 Hexo 文章自动部署
自动化部署的精髓在于 git 上传文章到远程仓库之后, 触发远程 hooks 进行 hexo 文章的生成和部署到网站目录
首先在服务器端对应目录建立 git 仓库 1
git init --bare <repo>
注意此时使用 --bare
参数建立的是一个裸仓库,该仓库不会保存工作树,仅仅保存 git
信息,一般在服务器端使用。并且
在本地 clone 当前项目 1
2git clone username@address:path/<repo>
cd <repo>
设置好 git 用户名和邮件 1
2git config user.name <name>
git config user.email <email>
使用 git hooks 实现服务器端裸仓库接受推送后自动部署,官方文档
在服务器仓库目录下
1 | cd hooks |
在 post-receive 下添加以下内容 1
2
3
4
5
6
7
8
9
10
11
12
13
14REMOTE_PATH=<repoPath>
DEPLOY_PATH=<hexoSourcePath>
WEBSITE_PATH=<websitePath>
rm -rf $DEPLOY_PATH
mkdir $DEPLOY_PATH
git --git_dir=$REMOTE_PATH --work-tree=DEPLOY_PATH checkout -f
echo "同步完成"
echo "开始生成"
cd hexoPath
hexo clean
hexo generate
rm -rf $WEBSITE_PATH/yourwebsite
mv yourwebsite $WEBSITE_PATH
echo "部署完成"
注意 git hooks 执行权限与 git 的用户权限一致,请注意权限管理避免出现 Permission denied
此时本地向远程仓库推送文章,远程 hexo 将自动 generate 并且将对应文件夹移动至网站目录,至此完成