准备条件

  1. Git 仓库(推荐自建,我是用的 Gitea,和 Drone 比较契合),将hugo new site生成的文件全部推到仓库里
  2. 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}}

Drone 启用自动化

Drone管理界面点开仓库,然后点一下ACTIVATE REPOSITORY按钮即可

预览图

CI截图