gitea + drone 搭建ci流水线

2022-08-26 19:57:30 浏览数 (1)

背景

之前搭建了gitea私仓,使用了两年多时间,最近打算搭建个ci,提高自己代码的质量。搭建可以参考:

https://cloud.tencent.com/developer/article/2026128

前期准备

创建OAuth2应用

在应用下面面创建OAuth2,输入自己drone需要使用的域名和login地址:

提交之后可以看到生成的密钥等信息:

创建共享Secret

执行下面命令生成共享Secret:

代码语言:javascript复制
openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6

下载安装镜像

执行下面命令安装镜像,设计到的几个参数需要注意:

  • DRONE_GITEA_SERVER:gitea地址。
  • DRONE_GITEA_CLIENT_ID:客户端id,第一步配置产生的。
  • DRONE_GITEA_CLIENT_SECRET:客户端密钥,第一步配置产生的。
  • DRONE_RPC_SECRET:客户端密钥,上一步生成的。
  • DRONE_RPC_HOST:drone的域名,可以使用ip。
代码语言:javascript复制
#!/bin/bash
docker pull drone/drone:2
docker stop drone
docker rm drone
docker run -d --name=drone 
	--env=DRONE_GITEA_SERVER=https://git.zeekling.cn 
	--env=DRONE_GITEA_CLIENT_ID=客户端ID 
	--env=DRONE_GITEA_CLIENT_SECRET=客户端密钥 
	--env=DRONE_RPC_SECRET=bea26a2221fd8090ea38720fc445eca6 
	--env=DRONE_SERVER_HOST=doc.zeekling.cn 
	--env=DRONE_SERVER_PROTO=https 
	--publish=9080:80 
	--publish=8443:443 
	--restart=always 
	--detach=true 
	drone/drone:2
docker pull drone/drone-runner-docker:linux-amd64
docker stop drone-runner
docker rm drone-runner
docker run -d --name=drone-runner 
	--link drone:drone 
	-p 9030:3000 
	--env=DRONE_RPC_PROTO=https 
	--env=DRONE_RPC_HOST=doc.zeekling.cn 
	--env=DRONE_RPC_SECRET=bea26a2221fd8090ea38720fc445eca6 
	--env=DRONE_RUNNER_CAPACITY=2 
	-v /var/run/docker.sock:/var/run/docker.sock 
	drone/drone-runner-docker:linux-amd64

安装drone-runner-exec

参照https://docs.drone.io/runner/exec/installation/linux/安装。

配置drone

打开drone地址:https://doc.zeekling.cn/

登录成功之后找到需要添加ci的项目,点击active;

配置下面信息:

新增.drone.yml文件,配置如下:

代码语言:javascript复制
kind: pipeline
type: docker
name: default
steps:
- name: build
  image: maven
  volumes:
    - name: cache
      path: /root/.m2
  commands:
    - mvn clean install -DskipTests
trigger:
  branch:
    - master
  event:
    - pull_request
    - push
volumes:
  - name: cache
    host:
      path: /root/.m2

提交代码,提交mr会开始跑ci,等待代码合入之后也会重新跑ci。

0 人点赞