0%

通过Drone CI/CD Hexo到Github Pages应该这样玩儿

环境

目前环境是Hexo+Github Pages

再来看看部署命令npm start

1
2
3
4
5
//  package.json

"scripts": {
"start": "hexo cl && hexo g && gulp && hexo d && php -f push_sitemap_to_baidu.php"
}

我们逐条来解读

hexo cl 清除缓存文件db.json和已生成的静态文件public

hexo g 生成静态文件

gulp 将静态文件进行压缩,这部分操作可以参考之前我写的文章——利用gulp对Hexo博客压缩并一键之部署

php -f push_sitemap_to_baidu.php 将文章主动推送至百度,这部分操作可以参考之前我写的文章——Hexo部署在Github Pages怎么提交Sitemap给百度?来我教你

.drone.yml

通过上面我们大概了解了环境,接下里我们编写.drone.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// .drone.yml

kind: pipeline
name: default

steps:
- name: publish
 image: jakehu/php-node # 包含了PHP7+Node10+GIT环境的镜像
 pull: always
commands:
- node -v
- php -v
- npm install
 - git config --global user.email "jakehu1991@gmail.com" # 对GIT进行设置
 - git config --global user.name "jakehu" # 对GIT进行设置
- npm start

这样就完了?并没有由于我们是在DroneDIND里面进行的部署,所以我们还需要对Github权限进行设置

1
2
3
4
5
6
7
8
// _config.yml

...
deploy:
- type: git
   repo: https://jakehu:password@github.com/jakehu/jakehu.github.io.git
branch: master
...

到这里就完成,只需要进行git push每次Drone就会自动把npm start所有的工作完成了

Drone运行过程

我就想试试,没别的意思!