嘿,我用Drone做CI

基于Drone来做CI/CD,个人感觉真的很棒,相对于业界老大哥jekins,我更喜欢drone,相比较而言,我觉得它主要有以下优势

  1. 插件不需要额外管理
  2. 基于yaml文件,易编写,配置可以进行版本管理
  3. 可以根据不同的条件进行构建
  4. 更人性化的UI界面

对于我们后端的java项目而言,我们CI要做什么呢?

image

一般提交代码流程如下

  1. Clone 项目到本地,创建一个分支来完成新功能的开发, git checkout -b feature/sync-status。在这个分支修改一些代码
  2. git add .,书写符合规范的 Commit 并提交代码, git commit -m "sync article status”
  3. 将代码推送到代码库的对应分支, git push origin feature/sync-status
  4. 如果功能已经开发完毕,可以向 Develop(或者Master) 分支发起一个 Pull Request,并让项目的负责人 Code Review
  5. Review 通过后,项目负责人将分支合并入主干分支

从上图中可以看到当我们提交代码时,会执行整个CI流程,需要注意的有以下2点

  1. 执行build或者unit test的时候,如果失败,会发送消息到Slack,这个时候开发人员就能注意到这个问题,当然也可以使用发送邮件或者微信的方式
  2. 执行SonarQube check的时候,如果存在问题会将结果回写到github中,开发人员就会去看这个问题

先看下SonarQube回写到github中的的检查结果是怎样的

image

当sonar qube检测完成之后,会将检查结果通过oauth的方式发送给github,所以你需要在github中创建Personal access token(这个要记下来)

当你激活你的代码仓库时,Drone会自动将Webhooks添加到版本控制系统中,例如GitHub,而无需手动配置

kind: pipeline
name: default

steps:
# build for push and pull_request
- name: build-pr
  image: maven:latest
  pull: if-not-exists
  commands:
  - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.skip=true -s settings.xml
  when:
    branch:
    - feature/*
    - issue/*
    - develop
    event
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值