准备条件
- Git 仓库(推荐自建,我是用的 Gitea,和 Drone 比较契合),将
hugo new site
生成的文件全部推到仓库里 - Drone 环境,前文已经写过,不再赘述
编写 Drone 配置文件
kind: pipeline
name: default
steps:
- name: 生成静态资源
image: hypervtechnics/drone-hugo
settings:
# 指定hugo版本
hugo_version: 0.70.0
# 是否校验配置文件是否合法
validate: true
# 指定配置文件
config: config.yaml
# 指定文章目录
content: content
# 指定生成的静态资源路径
output: ./hugo
- name: 推送到服务器
image: appleboy/drone-scp
settings:
# 服务器IP
host: 10.0.0.1
# 需要替换的服务器的路径,我的是服务器的`/data/hugo`目录,由于打包的文件的路径就是`hugo`,所以这儿只需要写`/data`即可
target: /data
# 本地生成的静态资源的路径
source: hugo/*
# 服务器账号
username: root
# 服务器登录密码
password: password
# 服务器端口
port: 22
when:
# 当仓库的 master 分支收到 push 事件,并且前一步构建成功的时候触发当前步骤
event: push
branch: master
status: success
- name: 发送电报通知消息
image: appleboy/drone-telegram
settings:
token: 机器人Token
to: 收信人用户ID
message: >
{{#success build.status}}
博客更新成功
{{else}}
博客更新失败
{{/success}}
更新记录:{{commit.author}} - {{commit.message}}
使用Docker
一键搭建Drone CI
什么是Drone CI
不想写,自个儿搜吧。
这玩意儿作为CI入门还是可以的,部署方便,功能也比较强大。
环境工作
- Gitea私服(也可以用其他的,Github、Gogs等都可以,我是用的Gitea)
- Docker 以及 Docker Compose
开始部署
- 在gitea新建一个应用
操作流程: