基于Gitea+Drone搭建自己的CI/CD平台
上一篇我们搭建了自己的Git服务,搭建Git之后,想找一个能解放生产力的工具,本文是集成Gitea和Drone-CI之解放生产力之方案,可参考步骤搭建自己的CI/CD服务
上一篇我们搭建了自己的Git服务器 搭建自己的Git服务器-Gitea安装教程, 搭建Git之后,想找一个能解放生产力的工具
这个时间突然看到了Drone这个CI工具,了解过后,觉得这个特别适合做为CI、CD工具的入门训练,而且它的功能非常强大
Drone也是原生就支持docker的CI,所有编译、测试的流程都在 Docker 容器中进行。
开发者只需在项目中包含 .drone.yml 文件,将代码推送到 git 仓库,Drone 就能够自动化的进行编译、测试、发布。
本篇博客会从0开始安装一个Drone
下面开始安装
准备#
- 拥有公网 IP、域名 (或者拥有自己的本地 Gitea 以供测试)
- 域名 SSL 证书 (可以使用Letsencrypt)
- 熟悉 Docker 以及 Docker Compose
- 熟悉 Git 基本命令
- 对 CI/CD 有一定了解
配置Docker-Compose#
创建docker-compose.yml配置文件
注: 1、drone-agent的docker image地址是 drone/agent,这个之前安装时没有看清楚导致CI一直跑不起来😂 2、DRONE_HOST为你的CI的线上地址 3、DRONE_SERVER现在drone最新版中可以直接设置server:port的方式 4、因为使用的gitea,所有需要将DRONE_GITEA设置为true
启动 Drone 服务#
docker-compose up -d
启动之后 curl localhost:9000
验证是否启动成功
如果启动失败,可以执行以下命令查看报错信息
docker-compose logs
配置 nginx 代理#
如果想提供给外网访问,还需要最后一步,配置nginx代理到Gitea服务
配置如下:
接下来我们打开https://ci.marryto.me
登录验证需要输入gitea的用户名和密码,接下来我们可以体验自己搭建的drone-ci了
体验Drone#
我们打开一个Node项目,新建一个文件,然后push到gitea中试一下
pipeline的设置基本上和其他CI工具差别不大,而且drone还支持一些service的配置
这个是官方service的一个配置
而我们这次用不到service,只需要init和 build测试一下
将改动push到master之后,我们可以看一下现在drone的页面,现在页面上有一个job在跑,我们可以点开查看一下
我们的安装完成了
关于Drone和其他git服务的集成可以看一下Drone的官网
Tips:
如果遇到CI job一直失败的情况,而且自己的配置没有问题的话,可以升级一下自己的服务器虚拟内存试一下,土豪请忽略。