手把手带你搭建CI/CD工作流

什么是CI/CD?

持续集成(ContinousIntergration,CI)是在源代码变更后自动检测、拉取、构建和进行自动化测试的过程,属于开发人员的自动化流程。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。其基本思路是,自动化监测代码仓库的变化并拉取最新代码、编译构建和自动化测试。CI的触发方式可分为以下三种:

●轮询:按一定的时间间隔反复询问代码仓库是否发生了变更,若发生了变更则开启CI流程
●定时:定期从代码仓库拉去最新代码并进行构建与测试,不必关心是否有变更发生
●推送:当代码仓库发生变更时,通过推送的方式(如webhook)通知CI进行任务,这需要CI环境被代码仓库访问到。

持续部署(ContinousDelivery,CD)通常是指开发人员对应用的更改会自动进行错误测试,并上传到存储库(如 GitHub 或容器注册表),然后由运维团队将其部署到实时生产环境中。持续部署指的是自动将开发人员的更改从存储库发布到生产环境,它以持续交付为基础,实现了管道后续阶段的自动化。 CI/CD 既可能仅指持续集成和持续交付构成的关联环节,也可以指持续集成、持续交付和持续部署这三项构成的关联环节。

什么是Drone?

Drone 是一种基于容器技术的持续交付系统。Drone 使用简单的 YAML 配置文件(docker-compose 的超集)来定义和执行 Docker 容器中的 Pipelines。

Drone 与流行的源代码管理系统无缝集成,包括 GitHub、GitHub Enterprise、Bitbucket、Gitee、Gitlab等。

自动化流程

基础设施

●gitee代码托管:https://gitee.com
●drone持续交付系统: https://drone.io
●服务器信息:ubuntu、docker、docker-compose

部署步骤

配置Gitee第三方授权

安装Drone

docker-compose文件配置如下:

SpringBoot工程配置

●根目录下加入:.drone.yml配置文件:

●增加run.sh脚本文件

●增加Dockerfile文件

效果演示