Gitea+Drone实现自动构建

Gitea搭建

docker搭建

1
docker run -d --name gitea -p 10022:22 -p 3000:3000 -v /data/gitea:/data gitea/gitea

Drone搭建

编写docker-compose.yaml

其中<*>的需要替换为自己的信息

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
32
33
34
35
36
37
38
39
40
41
version: "3"

services:
drone-server:
image: drone/drone:2
container_name: drone-server
privileged: true
environment:
- DRONE_GITEA_SERVER=<Gitea域名>
- DRONE_GITEA_CLIENT_ID=<Gitea用户Oauth应用客户端ID>
- DRONE_GITEA_CLIENT_SECRET=<Gitea用户Oauth应用客户端密钥>
- DRONE_SERVER_HOST=<Drone域名>
- DRONE_SERVER_PROTO=http
- DRONE_RPC_SECRET=drone2024
- DRONE_USER_CREATE=username:<Gitea用户名>,admin:true
- DRONE_GIT_USERNAME=<Gitea用户名>
- DRONE_GIT_PASSWORD=<Gitea密码>
- TZ=Asia/Shanghai
volumes:
- ./drone:/var/lib/drone/
- /var/run/docker.sock:/var/run/docker.sock
restart: always
ports:
- '10081:80'

drone-runner-docker:
image: drone/drone-runner-docker:1.4.0
container_name: drone-runner-docker
privileged: true
environment:
- DRONE_RPC_SECRET=drone2024
- DRONE_RPC_HOST=drone-server
- DRONE_RPC_PROTO=http
- DRONE_RUNNER_CAPACITY=2
- DRONE_RUNNER_NAME=drone-runner-docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: always
depends_on:
- drone-server

执行

1
docker-compose up -d

drone.yaml编写

我们在仓库的根目录下创建文件.drone.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
kind: pipeline
name: hexo
type: docker

steps:
- name: build-start
image: appleboy/drone-ssh
pull: if-not-exists
settings:
host:
from_secret: ssh_host
username:
from_secret: ssh_username
password:
from_secret: ssh_password
port:
from_secret: ssh_port
command_timeout: 5m
script:
- cd /www/hexo;/usr/bin/git pull;/usr/bin/hexo g;/usr/bin/hexo d