先电2.4 云计算比赛 cicd 部分 基于github的drone 安装配置

gitlab同理 自己体会

 

drone 他和大部分的ci工具一样分为server端和agent端或者说runner端,所以搭建它也分为搭建server端和agent端,但是有一个不好的地方就是,你在server端是看不到我这个server连接了几个agent,但是这个不是什么问题,因为drone会给你找到最合适的agent去编译,你只需要在.drone.yml文件中定义就好了

Drone是Container-Native的平台,那自然Drone也是使用容器方式来安装的,所以首先要准备容器的运行环境,我们这里使用docker

drone目前支持以下git平台

  • github
  • gitlab
  • gogs
  • gitea
  • bitbucket cloud
  • bitbucket server

其他有关资料自己随便找

首先我们需要在gitlab上新建Oauth

步骤如下

1.进入github后点击头像

 

2.点击Settings

3.点击Developer settings

4.点击Oauth Apps 后点击new oauth app

 

5.填写相应信息

Application name 填写你的需要使用Oauth的应用名称 比如drone 就填写drone
Homepage URL 填写使用Oauth 的app的url 比如我本地虚拟机docker搭建的drone 就填写 http://192.168.1.200
Description 随意填写你需要的描述信息
Callback URL 为github认证成功后跳转的url 我们需要在我们drone的url后加上login后缀 如 http://192.168.1.200/login  此处一定要加不然会一直跳转认证界面

填写完成后 完成创建即可

 

6.进入刚刚创建好的Oauth

 

生成一个客户端密钥 完成后如上图所示即可

至此github上的操作完成了

 

7.创建drone

首先在drone的宿主机上运行
openssl rand -hex 16
创建一个共享密钥,保证后续 ci runner 与我们drone 的通信正常。
接着我们使用docker 创建drone容器  以下是官方实例

docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_GITHUB_CLIENT_ID={{DRONE_GITHUB_CLIENT_ID}} \                            #使用第六步生成的client_id
  --env=DRONE_GITHUB_CLIENT_SECRET={{DRONE_GITHUB_CLIENT_SECRET}} \                  #使用第六步生成的客户端密钥
  --env=DRONE_RPC_SECRET={{DRONE_RPC_SECRET}} \                                                             #填写刚刚生成的共享密钥
  --env=DRONE_SERVER_HOST={{DRONE_SERVER_HOST}} \                                          #填写drone访问ip如 安装docker宿主机ip
  --env=DRONE_SERVER_PROTO={{DRONE_SERVER_PROTO}} \                                      #填写drone使用的协议如http
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:1


完整实例如下

docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_GITHUB_CLIENT_ID=670424345678932fb9bb \
  --env=DRONE_GITHUB_CLIENT_SECRET=97f3204c2e48e3223456fa4567837eceb4e582f9 \
  --env=DRONE_RPC_SECRET=5045f012345638ccce3c552345765d59 \
  --env=DRONE_SERVER_HOST=192.168.1.200 \
  --env=DRONE_SERVER_PROTO=http \
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:1

完成创建如下

 

8.访问drone

我们在浏览器进行drone的访问

 

接着我们点击授权即可

接着会自动跳转到我们的drone的控制界面

 

同步后我们可以选择自己的项目进行激活

然后们就可以开始我们的drone的工作

 


版权声明:本文为qq_36766161原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。