基于gogs和drone的一个轻量级的开发部署自动化流程

install

git clone https://github.com/wpjscc/gogs-drone
sudo docker-compose up

访问

gogs 127.0.0.1:3000

drone 127.0.0.1:8000

账号密码通用

安装 exec-pipes

官网

下面是 linux的可以直接用

mkdir /etc/drone-runner-exec
mkdir /var/log/drone-runner-exec

vi /etc/drone-runner-exec/config
DRONE_RPC_PROTO=http
DRONE_RPC_HOST=127.0.0.1:8000
DRONE_RPC_SECRET=gjO9kVnS7PdixaGF
DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt


./drone-runner-exec service install
./drone-runner-exec service start

# 验证安装成功
cat /var/log/drone-runner-exec/log.txt

新建一个仓库

可以参考 github.com/wpjscc/gogs-drone-nginx

里面是一个很简单的例子,部署了一个nginx

进入 127.0.0.1:8000

点击同步

1

下面会出现一个刚新建的仓库

点击进入

开启这个项目

1

接下来进入到gogs的管理web钩子,那里会出现一个链接(刚上方点击开启后会这个链接会自动同步到这里),点击那个链接

1

点击测试推送,就可以在drone里看到一个任务在运行了

1

运行成功后

访问 127.0.0.1:8080

就可以看到nginx的欢迎页面了

1

done

配置文件说明

---
kind: pipeline
type: exec
name: default

platform:
  os: linux
  arch: amd64

steps:
- name: build
  commands:
  - docker run -d -p 8080:80  nginx

其中的

docker run -d -p 8080:80  nginx

可以换成任何你想要的命令,最终会运行宿主主机上。

方案分享

我的方案是这样的。

我本地有一台闲置的电脑,除了上方的软件外,还安装了

我的配置文件是这样的.drone.yml

---
kind: pipeline
type: exec
name: default

platform:
  os: linux
  arch: amd64

steps:
- name: build
  commands:
  - dep deploy -vv

根目录会有一个deployer.php文件,.drone.yml就不用动了,只需在deploer.php中写部署逻辑即可。

我在 deployer.php 里实现了打包docker镜象,然后发布到k8s中。也可以手动运行发布,不依赖于自动打包环境

dep deploy -vvv

openvpn 用于远程访问。

gogs,我只是用它中转到drone,实际代码还是保存在gitee或github中,可以配置下.git/config

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = 仓库1
        url = 仓库2
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

这样就可以触发drone构建了

本作品采用《CC 协议》,转载必须注明作者和本文链接
Make everything simple instead of making difficulties as simple as possible
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!