0%

Hexo - 通过Drone自动部署

Hexo环境准备

这里已经假设使用Hexo创建好了网站

  1. 配置 _config.yml 的deploy,将文章发布到私有git服务器
1
2
3
4
deploy:
type: git
repo: your-repo.git
branch: master
  1. 执行hexo d 将网站发布到git上
1
$hexo d

配置Drone任务

Drone安装与配置

  1. 到Drone激活仓库

image-20191207230036760

  1. 基础配置

image-20191207230208605

需要勾选 Trusted,因为目前没想到比较好的方式在单机上进行部署发布。所以通过不怎么安全的Volumes方式做目录映射来处理数据,以后有更好的方式再修改。

  1. 进入 .deploy_git 目录,创建.drone.yml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
---
kind: pipeline
type: docker
name: your-job

workspace:
base: /homespace
path: src

steps:
- name: deploy
image: golang
volumes:
- name: cache
path: /workspace
commands:
- mkdir -p /workspace/zh-blog/
- cd /workspace/zh-blog/
- rm -rf *
- cp -r /homespace/src/* /workspace/zh-blog/

volumes:
- name: cache
host:
path: /custom_dir/workspace

原理解释

通过volumes将宿主系统的 /custom_dir/workspace 目录映射到 cache 上

然后Drone的pipeline在执行脚本的时候,将git的内容覆盖过去

配置Nginx服务器

1
2
3
4
5
6
7
server {
listen 80;
location / {
root /custom_dir/workspace;
index index.html;
}
}

发表一篇文章试试

写好文章后,通过 hexo d进行发布, 在Drone平台上,看到构建任务

image-20191207230908232

Great!!!