我用Drone做CI"/>
嘿,我用Drone做CI
基于Drone来做CI/CD,个人感觉真的很棒,相对于业界老大哥jekins,我更喜欢drone,相比较而言,我觉得它主要有以下优势
- 插件不需要额外管理
- 基于yaml文件,易编写,配置可以进行版本管理
- 可以根据不同的条件进行构建
- 更人性化的UI界面
对于我们后端的java项目而言,我们CI要做什么呢?
一般提交代码流程如下
- Clone 项目到本地,创建一个分支来完成新功能的开发, git checkout -b feature/sync-status。在这个分支修改一些代码
- git add .,书写符合规范的 Commit 并提交代码, git commit -m "sync article status”
- 将代码推送到代码库的对应分支, git push origin feature/sync-status
- 如果功能已经开发完毕,可以向 Develop(或者Master) 分支发起一个 Pull Request,并让项目的负责人 Code Review
- Review 通过后,项目负责人将分支合并入主干分支
从上图中可以看到当我们提交代码时,会执行整个CI流程,需要注意的有以下2点
- 执行build或者unit test的时候,如果失败,会发送消息到Slack,这个时候开发人员就能注意到这个问题,当然也可以使用发送邮件或者微信的方式
- 执行SonarQube check的时候,如果存在问题会将结果回写到github中,开发人员就会去看这个问题
先看下SonarQube回写到github中的的检查结果是怎样的
当sonar qube检测完成之后,会将检查结果通过oauth的方式发送给github,所以你需要在github中创建Personal access token(这个要记下来)
当你激活你的代码仓库时,Drone会自动将Webhooks添加到版本控制系统中,例如GitHub,而无需手动配置
kind: pipeline
name: defaultsteps:
# build for push and pull_request
- name: build-primage: maven:latestpull: if-not-existscommands:- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.skip=true -s settings.xmlwhen:branch:- feature/*- issue/*- developeve
更多推荐
嘿,我用Drone做CI
发布评论