使用雲效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做品質檢測,能夠保障高品質的傳遞速度,為你和團隊提供代碼掃描、 安全掃描和各種自動化測試能力,支援人工測試卡點、自動化驗證卡點等多種品質紅線,確定業務品質。通過持續向團隊提供及時回報,讓傳遞過程高效順暢。