0%

drone-startup

安装drone

  1. 跟着官方走,官方文档 已经说的很详细了
  2. 如果是在github上的公开项目,建议直接使用drone的cloud版本,不用自己安装,另外性能也比较好

    使用

当前博客使用的是Hexo,然后再用drone部署在阿里云的server上,思路如下:

  1. 在drone中active当前的github的项目
  2. 拉取node基础环境
  3. 全局安装hexo-cli
  4. 安装当前项目的依赖包
  5. 执行编译命令
  6. 复制编译结果到目标服务器,到此为止就结束了,下面我们来看看具体的drone配置文件
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
26
27
28
29
30
31
kind: pipeline
name: build and publish
steps:
- name: build # 编译环境的设置及编译
image: node
commands:
- npm config set registry https://registry.npm.taobao.org # 设置淘宝源
- npm install hexo-cli -g # 全局安装hexo-cli
- npm install # 安装项目依赖
- hexo generate # 编译/生成/渲染静态文件
- name: scp # 复制编译结果到目标服务器
image: appleboy/drone-scp
settings:
host:
from_secret: host
username:
from_secret: username
password:
from_secret: password
target: /home/beck/blog/
rm: true
source:
- ./public/*
- name: notification # 钉钉机器人发送编译成功通知
image: lddsb/drone-dingtalk-message
settings:
token: xxx
type: markdown
message_color: true
message_pic: true
sha_link: true
  1. kind定义了管道的类型,其实还有一个执行环境,不过这里我们没有设置,默认的是docker,更多管道设置可以看这里
  2. 接下来的steps里面有三个部分,也就是两个step,其中:
    • step1:拉取node的基础镜像后设置环境并进行编译
    • step2:使用了drone-scp镜像把代码传到目标服务器上(其实完全可以使用scp命令代替),对于服务器的用户名以及密码可以使用变量,这些变量定义在settings里面的secret,使用时就像上面那样直接from_secret就行
    • step3:使用了给钉钉机器人发通知的一个docker镜像,在第前两步的完成后会给某个钉钉机器人发送个task执行完成的消息