在 動作中設定品質報告 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 動作中設定品質報告

本節說明如何在 動作中設定品質報告。

自動探索和手動報告

啟用自動探索時,CodeCatalyst 會搜尋傳遞至動作的所有輸入,以及動作本身產生的所有檔案,尋找測試、程式碼涵蓋範圍、軟體合成分析 (SCA) 和靜態分析 (SA) 報告。您可以在 CodeCatalyst 中檢視和操作每個報告。

您也可以手動設定要產生哪些報告。您可以指定要產生的報告類型以及檔案格式。如需詳細資訊,請參閱品質報告類型

設定報告的成功條件

您可以設定值來決定測試、程式碼涵蓋範圍、軟體合成分析 (SCA) 或靜態分析 (SA) 報告的成功條件。

成功條件是用來判斷報告是否通過或失敗的閾值。CodeCatalyst 會先產生您的報告,可以是測試、程式碼涵蓋範圍、SCA 或 SA 報告,然後將成功條件套用至產生的報告。然後,它會顯示是否符合成功條件,以及達到多少程度。如果任何報告不符合指定的成功條件,則指定成功條件的 CodeCatalyst 動作會失敗。

例如,當您設定 SCA 報告的成功條件時,從最嚴重到最不嚴重的有效漏洞值為:CRITICALHIGHMEDIUMLOWINFORMATIONAL。如果您設定條件以HIGH嚴重性掃描一個漏洞,則如果至少有一個HIGH嚴重性漏洞或沒有HIGH嚴重性漏洞,但至少一個嚴重性層級較高的漏洞,例如一個CRITICAL嚴重性的漏洞,則報告將會失敗。

如果您未指定成功條件,則:

  • 根據您的原始報告產生的 CodeCatalyst 報告不會顯示成功條件。

  • 成功條件不會用來判斷相關聯的工作流程動作是否通過或失敗。

Visual
設定成功條件
  1. 在導覽窗格中,選擇 CI/CD,然後選擇工作流程

  2. 選擇包含產生報告之動作的工作流程。這是您要套用成功條件的報告。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。

  3. 選擇編輯

  4. 選擇視覺化

  5. 在工作流程圖表中,選擇您已設定為產生 CodeCatalyst 報告的動作。

  6. 選擇 Output (輸出) 索引標籤。

  7. 自動探索報告手動設定報告下,選擇成功條件

    成功條件隨即出現。根據您先前的選擇,您可能會看到下列任何或所有選項:

    通過率

    指定測試報告中必須傳遞的測試百分比,相關 CodeCatalyst 報告才能標示為已傳遞。有效值包括小數位數。例如:5060.5。通過率條件僅適用於測試報告。如需測試報告的詳細資訊,請參閱測試報告

    線路涵蓋範圍

    指定程式碼涵蓋範圍報告中必須涵蓋的行數百分比,以便將相關聯的 CodeCatalyst 報告標示為已傳遞。有效值包括小數位數。例如:5060.5。明細涵蓋範圍條件僅適用於程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊,請參閱程式碼涵蓋範圍報告

    分支涵蓋範圍

    在程式碼涵蓋範圍報告中指定必須涵蓋的分支百分比,相關 CodeCatalyst 報告才能標示為傳遞。有效值包括小數位數。例如:5060.5。分支涵蓋範圍條件僅適用於程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊,請參閱程式碼涵蓋範圍報告

    漏洞 (SCA)

    指定 SCA 報告中允許將相關聯 CodeCatalyst 報告標記為已傳遞的漏洞數量和嚴重性上限。若要指定漏洞,您必須指定:

    • 您要包含在計數中的漏洞的最低嚴重性。有效值,從最嚴重到最不嚴重,為:CRITICALHIGHMEDIUMLOWINFORMATIONAL

      例如,如果您選擇 HIGH,則 HIGHCRITICAL 漏洞將會很高。

    • 您想要允許之指定嚴重性的漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

    漏洞條件只會套用至 SCA 報告。如需 SCA 報告的詳細資訊,請參閱 軟體合成分析報告

    錯誤

    指定 SA 報告中允許將相關聯 CodeCatalyst 報告標記為已傳遞的錯誤數目和嚴重性上限。若要指定錯誤,您必須指定:

    • 您要包含在計數中錯誤的最低嚴重性。有效值,從最嚴重到最不嚴重,為:CRITICALHIGHMEDIUMLOWINFORMATIONAL

      例如,如果您選擇 HIGH,則 HIGHCRITICAL 錯誤將會很高。

    • 您想要允許之指定嚴重性的錯誤數目上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

    錯誤條件只會套用至 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊,請參閱 靜態分析報告

    安全漏洞

    指定 SA 報告中允許將相關聯 CodeCatalyst 報告標記為已傳遞之安全漏洞的數量和嚴重性上限。若要指定安全漏洞,您必須指定:

    • 您要包含在計數中的安全漏洞的最低嚴重性。有效值,從最嚴重到最不嚴重,為:CRITICALHIGHMEDIUMLOWINFORMATIONAL

      例如,如果您選擇 HIGH,則 HIGH和 將高化CRITICAL安全漏洞。

    • 您想要允許之指定嚴重性的安全漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

    安全漏洞條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊,請參閱 靜態分析報告

    品質問題

    指定 SA 報告中允許將相關聯 CodeCatalyst 報告標記為已傳遞的品質問題數量和嚴重性上限。若要指定品質問題,您必須指定:

    • 您要包含在計數中之品質問題的最低嚴重性。有效值,從最嚴重到最不嚴重,為:CRITICALHIGHMEDIUMLOWINFORMATIONAL

      例如,如果您選擇 HIGH,則 HIGHCRITICAL品質問題將會高排名。

    • 您想要允許之指定嚴重性的品質問題數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

    品質問題條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊,請參閱 靜態分析報告

  8. 選擇 Commit (遞交)。

  9. 執行工作流程,讓 CodeCatalyst 將成功條件套用至原始報告,並重新產生包含成功條件資訊的相關聯 CodeCatalyst 報告。如需詳細資訊,請參閱手動啟動工作流程執行

YAML
設定成功條件
  1. 在導覽窗格中,選擇 CI/CD,然後選擇工作流程

  2. 選擇包含產生報告之動作的工作流程。這是您要套用成功條件的報告。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。

  3. 選擇編輯

  4. 選擇 YAML

  5. 在工作流程圖表中,選擇您已設定為產生 CodeCatalyst 報告的動作。

  6. 在詳細資訊窗格中,選擇輸出索引標籤。

  7. 在 動作、 AutoDiscoverReports區段或 Reports區段中,新增 SuccessCriteria 屬性,以及 PassRate、、LineCoverageBranchCoverageVulnerabilitiesStaticAnalysisBugStaticAnalysisSecurityStaticAnalysisQuality 屬性。

    如需每個屬性的說明,請參閱 建置和測試動作 YAML

  8. 選擇 Commit (遞交)。

  9. 執行工作流程,讓 CodeCatalyst 將成功條件套用至原始報告,並使用包含的成功條件資訊重新產生相關聯的 CodeCatalyst 報告。如需啟動工作流程的詳細資訊,請參閱 手動啟動工作流程執行

品質報告 YAML 範例

下列範例示範如何手動設定四個報告:測試報告、程式碼涵蓋範圍報告、軟體合成分析報告和靜態分析報告。

Reports: MyTestReport: Format: JUNITXML IncludePaths: - "*.xml" ExcludePaths: - report1.xml SuccessCriteria: PassRate: 90 MyCoverageReport: Format: CLOVERXML IncludePaths: - output/coverage/jest/clover.xml SuccessCriteria: LineCoverage: 75 BranchCoverage: 75 MySCAReport: Format: SARIFSCA IncludePaths: - output/sca/reports.xml SuccessCriteria: Vulnerabilities: Number: 5 Severity: HIGH MySAReport: Format: ESLINTJSON IncludePaths: - output/static/eslint.xml SuccessCriteria: StaticAnalysisBug: Number: 10 Severity: MEDIUM StaticAnalysisSecurity: Number: 5 Severity: CRITICAL StaticAnalysisQuality: Number: 0 Severity: INFORMATIONAL