使用云效Flow做质量检测,保障高质量的交付速度,云效「Flow」 提供代码扫描、 安全扫描和各种自动化测试能力,支持人工测试卡点、自动化验证卡点等多种质量红线,确保业务质量。云效流水线 Flow 流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅。
 
更多「云效」产品,查看:云效快速入门
 
「Flow」 提供代码扫描、 安全扫描和各种自动化测试能力,支持人工测试卡点、自动化验证卡点等多种质量红线,确保业务质量。如何使用质量检测能力,下面这篇内容告诉你一章
 

一、代码扫描

 
1、代码扫描能力
 
云效Flow 为主流语言提供了开箱即用的代码扫描能力,为用户提供了快速检测代码质量的能力。
 
支持语言和规则
 
目前飞流支持扫描的语言和规则,如下表所示: 查看详情点击代码扫描能力 (aliyun.com)
 
 
扫描场景支持
  • 代码全量扫描
  • 代码增量扫描 全量扫描和增量扫描
  • 特定的代码目录扫描 指定或排除目录扫描
  • 指定规则集扫描 指定扫描规则集
2、使用代码扫描
 
云效Flow 提供了开箱即用的代码扫描能力,在流水线中添加「代码扫描」任务,即可启用。用户可以通过以下方式添加代码扫描任务。
  • 使用模板新建流水线,选择包含 「代码扫描」 任务的模板
  • 在已有的流水线中,添加新的阶段,并选择「代码扫描」任务
流水线模版创建
 
新建流水线时,选择对应的开发语言,可以查看当前语言下的默认流水线模版,选择带有“代码扫描”节点的流水线模版,即可快速使用代码扫描能力 。
 
 
编排流水线,添加代码扫描任务
 
在流水线编排中,可以通过添加任务,在任务类型分类“代码扫描”的任务,可以快速的添加代码扫描任务 。
 
 
3、全量扫描和增量扫描
 
云效Flow 支持代码全量扫描和增量扫描,可以根据需要,选择合适的扫描方式进行使用。
 
1) 代码规约全量扫描,通过飞流的扫描任务对指定的代码工程进行编码规约全量检测。
 
优点: 支持跨文件引用, 代码扫描全面。
缺点: 但扫描速度较慢,问题量会比较多,难以修复
 
2) 代码规约增量扫描,是基于 Gitlab 的一次 push ,自动获取 diff 内容,对 diff 文件用编码规约规则进行扫描,并过滤出此次提交产生 diff 规约问题功能。
 
优点: 只扫描 diff 文件,扫描速度很快,增量问题直接关联到人,能有效防止代码提交引进新问题数。
缺点: 因只扫描 diff 文件,不能发现跨文件引用出现的规约问题。
 
 
4、P3C代码扫描
 
Java 规约扫描是阿里巴巴多年经验提炼的 Java规范- 包含7大类 Java 代码规则
  • 命名规约
  • 注释规范
  • 集合
  • OOP 规约
  • 并发处理
  • 控制语句
  • 其他。如果未做扫描配置,默认会对所有规则进行扫描,也可以在规约扫描组件配置。
指定扫描规则集
 
配置指定规则集,配置规则集如下图所示: 1)在流水线编辑状态,点击相应的规约扫描卡片 2)在展开的卡片抽屉上,点击任务列表 - 如图中:Java 代码扫描 3)在规约集合处,配置相应的规则集
 
 
 
指定或排除目录扫描
 
配置目录扫描:
 
1)在流水线编辑状态,点击相应的规约扫描卡片,
2)在展开的卡片抽屉上,点击任务列表 - 如图中:Java 代码扫描
3)子目录:配置扫描的相应目录;排除子目录:配置排除在扫描范围内的相应目录。
 
 
5、使用自定义代码扫描规则
 
目前云效Flow 已经内置了支持 Java,JavaScript,Python,Go,TypeScript,PHP 等语言的代码质量扫描能力,并提供了默认的代码扫描规则。对于需要对扫描规则进行调整的用户可以使用自定义代码扫描规则。
 
ps:更多规则请参考ESLint官方文档
 
目前支持自定义代码扫描规则如下:
 
1)、ESLint自定义规则
 
添加代码扫描任务
 
添加流水线任务并选择JavaScript代码扫描,如下所示:
 
 
使用自定义规则
 
默认情况下Flow使用内置的eslint检查规则,如果需要使用自定义规则,需要在任务配置中勾选“使用本地ESLint配置”,勾选后需要确保项目根路径下包含.eslintrc.*文件即可。
 
 
2)、TypeScript自定义规则
 
添加TS代码扫描任务
 
添加任务并选择TypeScript代码扫描任务,如下所示:
 
 
使用自定义规则
 
默认情况下,Flow会使用TS Lint默认的代码扫描规则。为了使用自定义的代码扫描规则用户需要在项目根路径下提供tslint.json文件。
 
初次使用可以使用如下命令生成该文件:
 
tslint --init
 
保存并运行流水线,TSLint任务会自动检查代码项目根路径下是否包含该文件,如果包含则使用用户定义的tslint.json文件。
 
 
3)、Java P3C自定义规则
 
自定义规则集
 
用户可以从Github获取默认的规则集合文件,并提交到代码仓库中。添加 Java 代码扫描如下所示:
 
 
在任务配置中,勾选“使用自定义规则目录”选项,并制定自定义规则文件所在目录,如下图所示:
 
 
保存并运行流水线即可使用代码库中定义的自定义规则集。
 

二、单元测试

云效Flow 为主流语言提供了开箱即用的单元测试能力,可以方便的对代码进行单元检测。
 
支持语言
 
目前飞流支持单元测试的语言如下表所示:
  • Java Maven
  • Java Gradle
  • Nodejs
  • Python
  • PHP Codeception
  • PHP Unittest
  • Golang
如何使用单元测试
 
在飞流中可以通过流水线任务快速的使用单元测试。
 
新建流水线时,通过流水线模版创建单元测试任务
 
新建流水线时,选择对应的开发语言,可以查看当前语言下的默认流水线模版,选择带有“测试”节点的流水线模版,即可快速使用单元测试能力
 
 
编辑流水线时,通过任务模版创建单元测试任务
 
在流水线编排中,可以通过添加任务,选择分类在“测试”下的任务,对应使用的语言来创建单元测试。
 
 
三、质量红线
 
质量红线是云效Flow 流水线提供的质量卡点能力, 用于标准化质量标准,当阶段中存在质量项尚未达标的情况下,阻止发布流程进入到下一阶段(环节)。
 
配置质量红线
 
质量红线当前支持在测试相关的任务中进行设置,包含:
  • 代码扫描能力
  • 单元测试
在流水线编辑状态,点击测试相关的任务, 点击“添加红线”,即可出现红线信息,用于指定当前测试任务必须达到的标准。
 
以扫描任务为例,可以设定红线如下图:
  • Blocker的问题为0
  • Major的问题为0
  • Critial的问题为0
 
 
质量红线生效
 
在流水线运行状态, 会根据对应的质量红线对测试任务进行判断,是否能够通过红线,如果未通过红线,对应的任务将失败。
 
 
质量红线跳过
 
考虑在一些特殊的情况下,未通过质量红线的流程也需要继续往下执行,飞流也提供了“跳过”的能力,可以由管理员将红线跳过。
 
 
云效流水线 Flow 流水线是持续交付的载体。云效Flow做质量检测,能够保障高质量的交付速度,为你和团队提供代码扫描、 安全扫描和各种自动化测试能力,支持人工测试卡点、自动化验证卡点等多种质量红线,确保业务质量。通过持续向团队提供及时反馈,让交付过程高效顺畅。
 
 
 

如何使用云效Flow做质量检测,保障高质量的交付速度的更多相关文章

  1. 云效Flow如何实现阿里云ECS多环境发布

    一.背景 云效Flow基于标签功能实现阿里云ECS多环境发布,在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境.测试团队的测试环境.还有类生产环境和生产环境 ...

  2. 如何通过云效Flow完成自动化部署—主机部署

    如何通过云效Flow完成自动化部署-主机部署,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  3. 如何通过云效Flow完成自动化构建—构建集群

    如何通过云效Flow完成自动化构建-构建集群,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  4. AspNetCore&云效Flow持续集成

    如今有了越来越多的持续集成工具,给的个人开发者的福利也是很足了,如无必要,自建工具有时只是作为练手了. 众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都推出了持续集成,甚至是一定条件内都是 ...

  5. 一站式交付体验:云效+Kubernetes

    背景 云效依托于阿里巴巴研发效能多年规模化持续交付,赋能云上开发者专为云端用户提供的一站式研发协作平台.Kubernetes,由Google开源的容器集群管理平台,面向运维侧提供自动化的集群和应用管理 ...

  6. 8个免费、高质量PPT素材网站,建议收藏

    ​免费还高质量的PPT素材网站我只推荐这8个. 不仅能让你的PPT提升一个档次,还能让你从菜鸟秒变大神. 废话不多说,直接上网站,几点收藏起来哦. 1.爱PPT 直达链接:https://www.2p ...

  7. 如何在云效流水线 Flow中构建属于自己的NPM仓库

    如何在云效流水线 Flow中构建属于自己的NPM仓库,Flow 通过各种构建组件,对各种语言提供了制品打包能力,让用户可以快速的使用流水线构建制品,并通过后续的部署任务进行部署.Flow 已经完成了与 ...

  8. 如何做好SQLite 使用质量检测,让事故消灭在摇篮里

    本文由云+社区发表 SQLite 在移动端开发中广泛使用,其使用质量直接影响到产品的体验. 常见的 SQLite 质量监控一般都是依赖上线后反馈的机制,比如耗时监控或者用户反馈.这种方式问题是: 事后 ...

  9. 什么是云效持续集成?如何关联Jenkins进行持续集成?

    什么是云效持续集成?如何关联Jenkins进行持续集成?云效流水线 Flow是一款企业级.自动化的研发交付流水线, 提供灵活易用的持续集成.持续验证. 持续发布功能,帮助企业高质量.高效率的交付业务. ...

随机推荐

  1. c# 对 struct为什么不能继承类和结构的思考

    1.类.结构在使用的时候可以不调用构造函数,如果能够继承类,这种情况下不能够初始化基类,因为不执行构造函数 2.结构.所有的结构类型都默认是 sealed,通过 反汇编可以看到  ,这就阻止了结构被继 ...

  2. LeetCoded第25题题解--K个一组翻转链表--java--链表

    链表 单链表:链表中的每个元素实际上是一个单独的对象,而所有对象都通过每个元素的引用字段链接在一起. 双链表:与单链表不同的是,双链表的每个节点都含有两个引用字段. 链表优点 灵活分配内存空间 能在O ...

  3. Java程序设计学习笔记(五) — 多线程

    时间:2016-4-15 09:56 --多线程(还有多核编程)     1.进程         进程是一个正在执行中的程序.         每一个进程执行都有一个执行顺序,该顺序是一个执行路径, ...

  4. 12-SpringCloud GateWay

    GateWay和Zuul说明 Zuul开发人员窝里斗,实属明日黄花 重点关注Gate Way GateWay是什么 上一代zuul 1.x官网 Gateway官网 概述 Cloud全家桶中有个很重要的 ...

  5. 了解Flask

    了解Flask 什么是Flask Flask 是一个微框架(Micro framework),所谓微框架,它就是很轻量级的,作者划分出了Flask应该负责什么(请求路由.处理请求.返回响应).不应该负 ...

  6. Git&Github介绍

    git&github 什么是GIT 是一个源代码管理工具 源代码为什么要管理起来? 你写的东西就叫源代码,第三方的库和框架都不算. 让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化. ...

  7. Linux内核编译配置脚本

    环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL Linux内核编译配置脚本 在linux开发过程中熟练使用脚本可以大大简化命令行操作,同时对于需要经常重复操作的指令也是一种备忘 ...

  8. Flask - 解决 app.run() 添加 host、port、debug 参数后运行不生效的问题

    问题背景 app.run() 添加了 host.port.debug 参数,运行后发现没有生效,咋肥事! 解决方案 要打开 debug 模式的话,勾选 FLASK_DEBUG 就好啦 再次运行,发现已 ...

  9. Mysql 面试宝典

    实时更新 你用过哪些数据库? mysql redis mysql 和 redis 的区别? 比较点 Mysql Redis 数据库类型 关系型 非关系型 作用 持久化层 存储需要持久化的数据,数据存在 ...

  10. Apache Hudi内核之文件标记机制深入解析

    1. 摘要 Hudi 支持在写入时自动清理未成功提交的数据.Apache Hudi 在写入时引入标记机制来有效跟踪写入存储的数据文件. 在本博客中,我们将深入探讨现有直接标记文件机制的设计,并解释了其 ...