建置和測試動作 YAML - Amazon CodeCatalyst

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

建置和測試動作 YAML

以下是建置和測試動作YAML的定義。有兩個動作有一個參考,因為其YAML屬性非常相似。

此動作定義以區段的形式存在更廣泛的工作流程定義檔案中。如需有關此檔案的詳細資訊,請參閱工作流程YAML定義

選擇下列程式碼中的YAML屬性,以查看是否有描述。

注意

下列大部分YAML屬性在視覺效果編輯器中都有對應的 UI 元素。若要查詢 UI 元素,請使用 Ctrl+F 。 元素會與其相關聯的YAML屬性一起列出。

# The workflow definition starts here. # See 頂層屬性 for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. action-name: Identifier: aws/build@v1 | aws/managed-test@v1 DependsOn: - dependent-action-name-1 Compute: Type: EC2 | Lambda Fleet: fleet-name Timeout: timeout-minutes Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name Caching: FileCaching: key-name-1: Path: file1.txt RestoreKeys: - restore-key-1 Inputs: Sources: - source-name-1 - source-name-2 Artifacts: - artifact-name Variables: - Name: variable-name-1 Value: variable-value-1 - Name: variable-name-2 Value: variable-value-2 Outputs: Artifacts: - Name: output-artifact-1 Files: - build-output/artifact-1.jar - "build-output/build*" - Name: output-artifact-2 Files: - build-output/artifact-2.1.jar - build-output/artifact-2.2.jar Variables: - variable-name-1 - variable-name-2 AutoDiscoverReports: Enabled: true | false ReportNamePrefix: AutoDiscovered IncludePaths: - "**/*" ExcludePaths: - node_modules/cdk/junit.xml SuccessCriteria: PassRate: percent LineCoverage: percent BranchCoverage: percent Vulnerabilities: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisBug: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisSecurity: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisQuality: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisFinding: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number Reports: report-name-1: Format: format IncludePaths: - "*.xml" ExcludePaths: - report2.xml - report3.xml SuccessCriteria: PassRate: percent LineCoverage: percent BranchCoverage: percent Vulnerabilities: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisBug: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisSecurity: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisQuality: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number StaticAnalysisFinding: Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL Number: whole-number Configuration: Container: Registry: registry Image: image Steps: - Run: "step 1" - Run: "step 2" Packages: NpmConfiguration: PackageRegistries: - PackagesRepository: package-repository Scopes: - "@scope" ExportAuthorizationToken: true | false

action-name

(必要)

指定動作的名稱。工作流程中的所有動作名稱都必須是唯一的。動作名稱僅限於英數字元 (a-z、A-Z、0-9)、連字號 (-) 和底線 (_)。不允許空格。您不能使用引號在動作名稱中啟用特殊字元和空格。

對應的 UI:組態索引標籤/動作名稱

Identifier

(action-name/Identifier)

識別 動作。除非您想要變更版本,否則請勿變更此屬性。如需詳細資訊,請參閱指定要使用的動作版本

aws/build@v1 用於建置動作。

aws/managed-test@v1 用於測試動作。

對應的 UI:工作流程圖表/Action-name/aws/build@v1|aws/managed-test@v1 label

DependsOn

(action-name/DependsOn)

(選用)

指定必須成功執行的動作、動作群組或閘道,才能執行此動作。

如需 'depends on' 功能的詳細資訊,請參閱 定序動作

對應的 UI:輸入索引標籤/取決於 - 選用

Compute

(action-name/Compute)

(選用)

用來執行工作流程動作的運算引擎。您可以在工作流程層級或動作層級指定運算,但不能同時指定兩者。在工作流程層級指定時,運算組態會套用至工作流程中定義的所有動作。在工作流程層級,您也可以在同一執行個體上執行多個動作。如需詳細資訊,請參閱跨動作共用運算

對應的 UI:

Type

(action-name/Compute/類型

(如果Compute包含 則為必填)

運算引擎的類型。您可以使用下列其中一個值:

  • EC2 (視覺編輯器) 或 EC2(YAML 編輯器)

    已針對動作執行期間的彈性進行最佳化。

  • Lambda (視覺編輯器) 或 Lambda(YAML 編輯器)

    最佳化的動作啟動速度。

如需運算類型的更多相關資訊,請參閱運算類型

對應的 UI:組態索引標籤/運算類型

Fleet

(action-name/Compute/Fleet)

(選用)

指定將執行工作流程或工作流程動作的機器或機群。使用隨需機群時,當動作開始時,工作流程會佈建所需的資源,並在動作完成時銷毀機器。隨需機群範例:Linux.x86-64.LargeLinux.x86-64.XLarge。如需隨需機群的詳細資訊,請參閱 隨需機群屬性

使用佈建機群,您可以設定一組專用機器來執行工作流程動作。這些機器保持閒置狀態,準備好立即處理動作。如需佈建機群的詳細資訊,請參閱 佈建的機群屬性

Fleet 如果 省略,則預設值為 Linux.x86-64.Large

對應的 UI:組態索引標籤/運算機群

Timeout

(action-name/Timeout)

(選用)

以分鐘 (YAML 編輯器) 或小時和分鐘 (視覺編輯器) 指定動作 CodeCatalyst 在結束動作之前可執行的時間量。最小值為 5 分鐘,最大值如 中所述中的工作流程配額 CodeCatalyst。預設逾時與最大逾時相同。

對應的 UI:組態索引標籤/逾時 - 選用

Environment

(action-name/Environment)

(選用)

指定要與 動作搭配使用 CodeCatalyst 的環境。動作會連線至所選環境中VPC指定的 AWS 帳戶 和選用 Amazon。動作會使用環境中指定的預設IAM角色來連線至 AWS 帳戶,並使用 Amazon VPC連線中指定的IAM角色來連線至 Amazon VPC。

注意

如果預設IAM角色沒有 動作所需的許可,您可以將動作設定為使用不同的角色。如需詳細資訊,請參閱變更動作IAM的角色

如需環境的詳細資訊,請參閱 部署至 AWS 帳戶 和 VPCs建立環境

對應的 UI:組態索引標籤/環境

Name

(action-name/Environment/Name)

(選用)

指定您要與動作建立關聯的現有環境名稱。

對應的 UI:組態索引標籤/環境

Connections

(action-name/Environment/Connections)

(選用)

指定要與動作建立關聯的帳戶連線。您可以在 下指定最多一個帳戶連線Environment

如果您未指定帳戶連線:

  • 此動作會使用 CodeCatalyst 主控台中環境中指定的 AWS 帳戶 連線和預設IAM角色。如需將帳戶連線和預設IAM角色新增至環境的相關資訊,請參閱 建立環境

  • 預設IAM角色必須包含 動作所需的政策和許可。若要判斷這些政策和許可是什麼,請參閱動作YAML定義文件中角色屬性的說明。

如需帳戶連線的詳細資訊,請參閱 允許存取已連線 AWS 的資源 AWS 帳戶。如需有關將帳戶連線新增至環境的資訊,請參閱 建立環境

對應的 UI:組態索引標籤/環境/中的內容 my-environment?/三個點選單/切換角色

Name

(action-name/Environment/Connections/Name)

(如果Connections包含 則為必填)

指定帳戶連線的名稱。

對應的 UI:組態索引標籤/環境/中的內容 my-environment?/三個點選單/切換角色

Role

(action-name/Environment/Connections/Role)

(如果Connections包含 則為必填)

指定此動作用於存取和操作 Amazon S3 和 Amazon 等 AWS 服務IAM的角色名稱ECR。請確定此角色已新增至您 AWS 帳戶 空間中的連線。若要將IAM角色新增至帳戶連線,請參閱 將IAM角色新增至帳戶連線

如果您未指定IAM角色,則動作會使用 CodeCatalyst 主控台中環境中列出的預設IAM角色。如果您在 環境中使用預設角色,請確定其具有下列政策。

注意

您可以搭配此動作使用 CodeCatalystWorkflowDevelopmentRole-spaceName角色。如需有關此角色的詳細資訊,請參閱 為您的帳戶和空間建立CodeCatalystWorkflowDevelopmentRole-spaceName角色。了解CodeCatalystWorkflowDevelopmentRole-spaceName角色具有完整的存取許可,這可能會帶來安全風險。我們建議您僅在安全性較少的教學課程和案例中使用此角色。

警告

將許可限制為建置和測試動作所需的許可。使用具有更廣泛許可的角色可能會帶來安全風險。

對應的 UI:組態索引標籤/環境/中的內容 my-environment?/三個點選單/切換角色

Caching

(action-name/Caching)

(選用)

您可以在此區段指定快取,以儲存磁碟上檔案,並在後續工作流程執行中從該快取還原這些檔案。

如需檔案快取的詳細資訊,請參閱 在工作流程執行間快取檔

對應的 UI:組態索引標籤/檔案快取 - 選用

FileCaching

(action-name/Caching/FileCaching)

(選用)

指定快取序列組態的區段。

對應的 UI:組態索引標籤/檔案快取 - 選用/新增快取

key-name-1

(action-name/Caching/FileCaching/key-name-1)

(選用)

指定主要快取屬性名稱的名稱。快取屬性名稱在工作流程中必須是唯一的。每個動作在 中最多可以有五個項目FileCaching

對應的 UI:組態索引標籤/檔案快取 - 選用/新增快取/金鑰

Path

(action-name/Caching/FileCaching/key-name-1/Path)

(選用)

指定快取的關聯路徑。

對應的 UI:組態索引標籤/檔案快取 - 選用/新增快取/路徑

RestoreKeys

(action-name/Caching/FileCaching/key-name-1/RestoreKeys)

(選用)

在找不到主要快取屬性時,指定要用作遞迴的還原金鑰。還原金鑰名稱在工作流程中必須是唯一的。每個快取在 中最多可以有五個項目RestoreKeys

對應的 UI:組態索引標籤/檔案快取 - 選用/新增快取/還原金鑰 - 選用

Inputs

(action-name/Inputs)

(選用)

Inputs 本節定義 動作在工作流程執行期間需要的資料。

注意

每個建置動作或測試動作最多允許四個輸入 (一個來源和三個成品)。變數不會計入此總計。

如果您需要參考位於不同輸入中的檔案 (例如來源和成品),則來源輸入是主要輸入,而成品是次要輸入。對次要輸入中檔案的參考需要特殊的字首,才能將其從主要輸入中消除。如需詳細資訊,請參閱 範例:參考多個成品中的檔案

對應的 UI:輸入索引標籤

Sources

(action-name/Inputs/Sources)

(選用)

指定代表動作所需來源儲存庫的標籤。目前,唯一支援的標籤是 WorkflowSource,代表儲存工作流程定義檔案的來源儲存庫。

如果省略來源,則必須在 下指定至少一個輸入成品action-name/Inputs/Artifacts

如需來源的詳細資訊,請參閱 將來源儲存庫連線至工作流程

對應的 UI:

Artifacts - input

(action-name/Inputs/Artifacts)

(選用)

指定您要提供作為此動作輸入之先前動作的成品。這些成品必須已在先前的動作中定義為輸出成品。

如果您未指定任何輸入成品,則必須在 下指定至少一個來源儲存庫action-name/Inputs/Sources

如需成品的詳細資訊,包括範例,請參閱 在動作之間共用成品和檔案

注意

如果偽影 - 選用下拉式清單無法使用 (視覺編輯器),或者您在驗證 YAML(YAML 編輯器時出現錯誤),可能是因為動作僅支援一個輸入。在此情況下,請嘗試移除來源輸入。

對應的 UI:輸入索引標籤/文章 - 選用

Variables - input

(action-name/Inputs/Variables)

(選用)

指定名稱/值對的序列,以定義您要提供給動作的輸入變數。變數名稱僅限於英數字元 (a-z、A-Z、0-9)、連字號 (-) 和底線 (_)。不允許空格。您不能使用引號在變數名稱中啟用特殊字元和空格。

如需變數的詳細資訊,包括範例,請參閱 在工作流程中使用變數

對應的 UI:輸入索引標籤/變數 - 選用

Outputs

(action-name/Outputs)

(選用)

定義工作流程執行期間動作輸出的資料。

對應的 UI:輸出索引標籤

Artifacts - output

(action-name/Outputs/Artifacts)

(選用)

指定動作產生的成品名稱。假影名稱在工作流程中必須是唯一的,且僅限於英數字元 (a-z、A-Z、0-9) 和底線 (_)。不允許使用空格、連字號 (-) 和其他特殊字元。您不能使用引號在輸出成品名稱中啟用空格、連字號和其他特殊字元。

如需成品的詳細資訊,包括範例,請參閱 在動作之間共用成品和檔案

對應的 UI:輸出索引標籤/文章

Name

(action-name/Outputs/Artifacts/Name)

(如果Artifacts - output包含 則為必填)

指定動作產生的成品名稱。假影名稱在工作流程中必須是唯一的,且僅限於英數字元 (a-z、A-Z、0-9) 和底線 (_)。不允許使用空格、連字號 (-) 和其他特殊字元。您不能使用引號在輸出成品名稱中啟用空格、連字號和其他特殊字元。

如需成品的詳細資訊,包括範例,請參閱 在動作之間共用成品和檔案

對應的 UI:輸出索引標籤/Artifacts/新輸出/建置成品名稱

Files

(action-name/Outputs/Artifacts/Files)

(如果Artifacts - output包含 則為必填)

指定 CodeCatalyst 包含在由 動作輸出之成品中的檔案。這些檔案在執行時由工作流程動作產生,並且也可以在您的來源儲存庫中使用。檔案路徑可以位於來源儲存庫中或先前動作的成品中,並且與來源儲存庫或成品根相關。您可以使用 glob 模式來指定路徑。範例:

  • 若要指定建置位置或來源儲存庫位置根中的單一檔案,請使用 my-file.jar

  • 若要在子目錄中指定單一檔案,請使用 directory/my-file.jardirectory/subdirectory/my-file.jar

  • 若要指定所有檔案,請使用 "**/*"** 全域模式表示 符合任何數量的子目錄。

  • 若要在名為 的目錄中指定所有檔案和目錄directory,請使用 "directory/**/*"** 全域模式表示 符合任何數量的子目錄。

  • 若要指定名為 的目錄中的所有檔案directory,但不是其任何子目錄,請使用 "directory/*"

注意

如果您的檔案路徑包含一或多個星號 (*) 或其他特殊字元,請使用雙引號 () 括住路徑""。如需特殊字元的詳細資訊,請參閱 語法準則和慣例

如需成品的詳細資訊,包括範例,請參閱 在動作之間共用成品和檔案

注意

您可能需要在檔案路徑中新增字首,以指出要尋找該路徑的成品或來源。如需詳細資訊,請參閱 參考來源儲存庫檔案參考人工因素中的檔案

對應的 UI:輸出索引標籤/Artifacts/新輸出/建置產生的檔案

Variables - output

(action-name/Outputs/Variables)

(選用)

指定要匯出動作的變數,以便可供後續動作使用。

如需變數的詳細資訊,包括範例,請參閱 在工作流程中使用變數

對應的 UI:輸出索引標籤/變數/新增變數

variable-name-1

(action-name/Outputs/Variables/variable-name-1)

(選用)

指定您要動作匯出的變數名稱。此變數必須已在相同動作的 InputsSteps區段中定義。

如需變數的詳細資訊,包括範例,請參閱 在工作流程中使用變數

對應的 UI:輸出索引標籤/變數/新增變數/名稱

AutoDiscoverReports

(action-name/Outputs/AutoDiscoverReports)

(選用)

定義自動探索功能的組態。

當您啟用自動探索時, CodeCatalyst 搜尋所有Inputs傳入動作,以及動作本身產生的所有檔案,尋找測試、程式碼涵蓋範圍和軟體組成分析 (SCA) 報告。對於找到的每個報告, 會將報告 CodeCatalyst 轉換為 CodeCatalyst 報告。CodeCatalyst 報告是完全整合到 CodeCatalyst 服務中的報告,可以透過 CodeCatalyst 主控台檢視和操作。

注意

根據預設,自動探索功能會檢查所有檔案。您可以使用 IncludePathsExcludePaths 屬性限制要檢查的檔案。

對應的 UI:輸出索引標籤/報告/自動探索報告

Enabled

(action-name/Outputs/AutoDiscoverReports/Enabled)

(選用)

啟用或停用自動探索功能。

有效值為 truefalse

Enabled 如果 省略,則預設值為 true

對應的 UI:輸出索引標籤/報告/自動探索報告

ReportNamePrefix

(action-name/Outputs/AutoDiscoverReports/ReportNamePrefix)

(如果AutoDiscoverReports包含並啟用,則為必填)

指定 CodeCatalyst 前綴,以附加至其找到的所有報告,以為相關聯的 CodeCatalyst 報告命名。例如,如果您指定 的字首AutoDiscovered,並 CodeCatalyst自動探索兩個測試報告TestSuiteOne.xmlTestSuiteTwo.xml,則相關聯的 CodeCatalyst 報告將命名為 AutoDiscoveredTestSuiteOneAutoDiscoveredTestSuiteTwo

對應的 UI:輸出索引標籤/報告/字首名稱

IncludePaths

(action-name/Outputs/AutoDiscoverReports/IncludePaths)

(action-name/Outputs/Reports/report-name-1/IncludePaths)

(如果 AutoDiscoverReports包含並啟用,或如果 Reports 包含 則為必要)

指定在搜尋原始報告時 CodeCatalyst 包含的檔案和檔案路徑。例如,如果您指定 "/test/report/*", 會 CodeCatalyst 搜尋尋找/test/report/*目錄的動作所使用的整個建置映像。當它找到該目錄時, CodeCatalyst 然後尋找該目錄中的報告。

注意

如果您的檔案路徑包含一或多個星號 (*) 或其他特殊字元,請以雙引號 () 括住路徑""。如需特殊字元的詳細資訊,請參閱 語法準則和慣例

如果省略此屬性,則預設值為 "**/*",表示搜尋包含所有路徑的所有檔案。

注意

對於手動設定的報告, IncludePaths必須是符合單一檔案的 glob 模式。

對應的 UI:

  • 輸出索引標籤/報告/自動探索報告/包含/排除路徑/包含路徑

  • 輸出索引標籤/報告/手動設定報告/report-name-1/包含/排除路徑/包含路徑

ExcludePaths

(action-name/Outputs/AutoDiscoverReports/ExcludePaths)

(action-name/Outputs/Reports/report-name-1/ExcludePaths)

(選用)

指定在搜尋原始報告時 CodeCatalyst 排除的檔案和檔案路徑。例如,如果您指定 "/test/my-reports/**/*", CodeCatalyst 將不會搜尋/test/my-reports/目錄中的檔案。若要忽略目錄中的所有檔案,請使用 **/* glob 模式。

注意

如果您的檔案路徑包含一或多個星號 (*) 或其他特殊字元,請以雙引號 () 括住路徑""。如需特殊字元的詳細資訊,請參閱 語法準則和慣例

對應的 UI:

  • 輸出索引標籤/報告/自動探索報告/包含/排除路徑/排除路徑

  • 輸出索引標籤/報告/手動設定報告/report-name-1/包含/排除路徑/排除路徑

SuccessCriteria

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria)

(選用)

指定測試、程式碼涵蓋範圍、軟體組成分析 (SCA) 和靜態分析 (SA) 報告的成功條件。

如需詳細資訊,請參閱設定報告的成功條件

對應的 UI:輸出索引標籤/報告/成功條件

PassRate

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/PassRate)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/PassRate)

(選用)

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

對應的 UI:輸出索引標籤/報告/成功條件/通過率

LineCoverage

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/LineCoverage)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/LineCoverage)

(選用)

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

對應的 UI:輸出索引標籤/報告/成功條件/行涵蓋範圍

BranchCoverage

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/BranchCoverage)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/BranchCoverage)

(選用)

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

對應的 UI:輸出索引標籤/報告/成功條件/分支涵蓋範圍

Vulnerabilities

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/Vulnerabilities)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/Vulnerabilities)

(選用)

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

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

    例如,如果您選擇 HIGH,則 HIGHCRITICAL 漏洞將會計算總和。

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

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

若要指定最低嚴重性,請使用 Severity 屬性。若要指定漏洞數量上限,請使用 Number 屬性。

對應的 UI:輸出索引標籤/報告/成功條件/漏洞

StaticAnalysisBug

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/StaticAnalysisBug)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/StaticAnalysisBug)

(選用)

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

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

    例如,如果您選擇 HIGH,則 HIGHCRITICAL 錯誤將會計算總和。

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

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

若要指定最低嚴重性,請使用 Severity 屬性。若要指定漏洞數量上限,請使用 Number 屬性。

對應的 UI:輸出索引標籤/報告/成功條件/錯誤

StaticAnalysisSecurity

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/StaticAnalysisSecurity)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/StaticAnalysisSecurity)

(選用)

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

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

    例如,如果您選擇 HIGH,則 HIGHCRITICAL 安全漏洞將會計算總和。

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

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

若要指定最低嚴重性,請使用 Severity 屬性。若要指定漏洞數量上限,請使用 Number 屬性。

對應的 UI:輸出索引標籤/報告/成功條件/安全漏洞

StaticAnalysisQuality

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/StaticAnalysisQuality)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/StaticAnalysisQuality)

(選用)

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

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

    例如,如果您選擇 HIGH,則 HIGHCRITICAL品質問題將會計算總和。

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

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

若要指定最低嚴重性,請使用 Severity 屬性。若要指定漏洞數量上限,請使用 Number 屬性。

對應的 UI:輸出索引標籤/報告/成功條件/品質問題

StaticAnalysisFinding

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria/StaticAnalysisFinding)

(action-name/Outputs/Reports/report-name-1/SuccessCriteria/StaticAnalysisFinding)

(選用)

指定 SA 報告中允許將關聯 CodeCatalyst 報告標記為已傳遞的調查結果數量和嚴重性上限。若要指定調查結果,您必須指定:

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

    例如,如果您選擇 HIGH,則 HIGHCRITICAL 調查結果將會計算高度。

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

調查結果只會套用至 SARIF SA 報告。如需 SA 報告的詳細資訊,請參閱 靜態分析報告

若要指定最低嚴重性,請使用 Severity 屬性。若要指定漏洞數量上限,請使用 Number 屬性。

對應的 UI:輸出索引標籤/報告/成功條件/調查結果

Reports

(action-name/Outputs/Reports )

(選用)

指定測試報告組態的區段。

對應的 UI:輸出索引標籤/報告

report-name-1

(action-name/Outputs/Reports/report-name-1

(如果Reports包含 則為必填)

您要提供給原始 CodeCatalyst 報告產生的報告的名稱。

對應的 UI:輸出索引標籤/報告/手動設定報告/報告名稱

Format

(action-name/Outputs/Reports/report-name-1/Format)

(如果Reports包含 則為必填)

指定您要用於報告的檔案格式。可能的值如下。

  • 對於測試報告:

    • 對於小黃瓜 JSON,指定小黃瓜 (視覺編輯器) 或 CUCUMBERJSON(YAML 編輯器)。

    • 對於 JUnit XML,請指定 JUnit(視覺編輯器) 或 JUNITXML(YAML 編輯器)。

    • 對於 NUnit XML,請指定 NUnit(視覺編輯器) 或 NUNITXML(YAML 編輯器)。

    • 對於 NUnit 3 XML,指定 NUnit3(視覺編輯器) 或 NUNIT3XML(YAML 編輯器)。

    • 針對 Visual Studio TRX,指定 Visual Studio TRX (視覺編輯器) 或 VISUALSTUDIOTRX(YAML 編輯器)。

    • 對於 TestNG XML,指定 TestNG (視覺編輯器) 或 TESTNGXML(YAML 編輯器)。

  • 對於程式碼涵蓋範圍報告:

    • 對於 Clover XML,指定 Clover (視覺編輯器) 或 CLOVERXML(YAML 編輯器)。

    • 對於 Cobertura XML,指定 Cobertura (視覺編輯器) 或 COBERTURAXML(YAML 編輯器)。

    • 對於 JaCoCo XML,請指定 JaCoCo(視覺編輯器) 或 JACOCOXML(YAML 編輯器)。

    • 對於 SimpleCov JSON Simplecov 產生的 ,而不是 Simplecov-json ,請指定 Simplecov (視覺編輯器) 或 SIMPLECOV(YAML 編輯器)。

  • 對於軟體撰寫分析 (SCA) 報告:

    • 對於 SARIF,請指定 SARIF(視覺編輯器) 或 SARIFSCA(YAML 編輯器)。

對應的 UI:輸出索引標籤/報告/手動設定報告/新增/設定報告/report-name-1/報告類型報告格式

Configuration

(action-name/Configuration)

(必要) 您可以在其中定義動作組態屬性的區段。

對應的 UI:組態索引標籤

Container

(action-name/Configuration/Container)

(選用)

指定動作用來完成其處理的 Docker 映像或容器 。您可以指定 隨附的其中一個作用中映像 CodeCatalyst,也可以使用您自己的映像。如果您選擇使用自己的映像,它可以駐留在 Amazon ECR、Docker Hub 或其他登錄檔中。如果您未指定 Docker 映像,動作會使用其中一個作用中映像進行處理。如需預設使用哪些作用中映像的相關資訊,請參閱 作用中影像

如需指定您自己的 Docker 映像的詳細資訊,請參閱 將自訂執行階段環境 Docker 影像指派給動作

對應的 UI:執行期環境 Docker 映像 - 選用

Registry

(action-name/Configuration/Container/Registry)

(如果Container包含 則為必填)

指定儲存映像的登錄檔。有效值包含:

  • CODECATALYST (YAML 編輯器)

    映像會儲存在 CodeCatalyst 登錄檔中。

  • Docker Hub (視覺編輯器) 或 DockerHub(YAML 編輯器)

    映像會儲存在 Docker Hub 映像登錄檔中。

  • 其他登錄檔 (視覺編輯器) 或 Other(YAML 編輯器)

    映像會儲存在自訂映像登錄檔中。可以使用任何公開可用的登錄檔。

  • Amazon Elastic Container Registry (視覺編輯器) 或 ECR(YAML 編輯器)

    映像會儲存在 Amazon Elastic Container Registry 映像儲存庫中。若要在 Amazon ECR儲存庫中使用映像,此動作需要存取 Amazon ECR。若要啟用此存取權,您必須建立包含下列許可和自訂信任政策IAM的角色。(如果您想要,可以修改現有角色以包含許可和政策。)

    IAM 角色必須在其角色政策中包含下列許可:

    • ecr:BatchCheckLayerAvailability

    • ecr:BatchGetImage

    • ecr:GetAuthorizationToken

    • ecr:GetDownloadUrlForLayer

    IAM 角色必須包含下列自訂信任政策:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    如需建立IAM角色的詳細資訊,請參閱 IAM 使用者指南 中的使用自訂信任政策 (主控台) 建立角色

    建立角色後,您必須透過環境將其指派給動作。如需詳細資訊,請參閱將環境與 動作建立關聯

對應的 UI:Amazon Elastic Container Registry、Docker Hub 和其他登錄選項

Image

(action-name/Configuration/Container/Image)

(如果Container包含 則為必填)

請指定下列其中一項:

  • 如果您使用CODECATALYST登錄檔,請將映像設定為下列其中一個作用中映像

    • CodeCatalystLinux_x86_64:2024_03

    • CodeCatalystLinux_x86_64:2022_11

    • CodeCatalystLinux_Arm64:2024_03

    • CodeCatalystLinux_Arm64:2022_11

    • CodeCatalystLinuxLambda_x86_64:2024_03

    • CodeCatalystLinuxLambda_x86_64:2022_11

    • CodeCatalystLinuxLambda_Arm64:2024_03

    • CodeCatalystLinuxLambda_Arm64:2022_11

    • CodeCatalystWindows_x86_64:2022_11

  • 如果您使用 Docker Hub 登錄檔,請將映像設定為 Docker Hub 映像名稱和選用標籤。

    範例:postgres:latest

  • 如果您使用的是 Amazon ECR登錄檔,請將映像設定為 Amazon ECR登錄檔 URI。

    範例:111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

  • 如果您使用自訂登錄檔,請將映像設定為自訂登錄檔預期的值。

對應的 UI:執行期環境Docker 映像 (如果登錄檔是 CODECATALYST)、Docker Hub 映像 (如果登錄檔是 Docker Hub )、ECR映像 URL (如果登錄檔是 Amazon Elastic Container Registry ) 和映像 URL (如果登錄檔是其他登錄檔 )。

Steps

(action-name/Configuration/Steps)

(必要)

指定要在 動作期間執行的 Shell 命令,以安裝、設定和執行建置工具。

以下是如何建置 npm 專案的範例:

Steps: - Run: npm install - Run: npm run build

以下是如何指定檔案路徑的範例:

Steps: - Run: cd $ACTION_BUILD_SOURCE_PATH_WorkflowSource/app && cat file2.txt - Run: cd $ACTION_BUILD_SOURCE_PATH_MyBuildArtifact/build-output/ && cat file.txt

如需指定檔案路徑的詳細資訊,請參閱 參考來源儲存庫檔案參考人工因素中的檔案

對應的 UI:組態索引標籤/ Shell 命令

Packages

(action-name/Configuration/Packages)

(選用)

您可以在此區段中指定 動作用來解決相依性的套件儲存庫。套件可讓您安全地存放和共用用於應用程式開發的軟體套件。

如需套件的詳細資訊,請參閱 在 中發佈和共用軟體套件 CodeCatalyst

對應的 UI:組態索引標籤/套件

NpmConfiguration

(action-name/Configuration/Packages/NpmConfiguration)

(如果Packages包含 則為必填)

定義 npm 套件格式組態的區段。此組態在工作流程執行期間由 動作使用。

如需 npm 套件組態的詳細資訊,請參閱 使用 NPM

對應的 UI:組態索引標籤/套件/新增組態/npm

PackageRegistries

(action-name/Configuration/Packages/NpmConfiguration/PackageRegistries)

(如果Packages包含 則為必填)

您可以在此區段定義套件儲存庫序列的組態屬性。

對應的 UI:組態索引標籤/套件/新增組態/npm/新增套件儲存庫

PackagesRepository

(action-name/Configuration/Packages/NpmConfiguration/PackageRegistries/PackagesRepository)

(如果Packages包含 則為必填)

指定您要動作使用的 CodeCatalyst 套件儲存庫名稱。

如果您指定多個預設儲存庫,最後一個儲存庫將優先處理。

如需套件儲存庫的詳細資訊,請參閱 套件儲存庫

對應的 UI:組態索引標籤/套件/新增組態/npm/新增套件儲存庫/套件儲存庫

Scopes

(action-name/Configuration/Packages/NpmConfiguration/PackageRegistries/Scopes)

(選用)

指定您要在套件登錄檔中定義的一系列範圍。定義範圍時,指定的套件儲存庫會設定為所有列出範圍的登錄檔。如果透過 npm 用戶端請求具有 範圍的套件,則會使用該儲存庫而非預設值。每個範圍名稱都必須以 "@" 開頭。

如果您包含覆寫範圍,最後一個儲存庫將優先處理。

如果 Scopes 省略,則指定的套件儲存庫會設定為動作使用的所有套件的預設登錄檔。

如需範圍的詳細資訊,請參閱 套件命名空間範圍套件

對應的 UI:組態索引標籤/套件/新增組態/npm/新增套件儲存庫/範圍 - 選用

ExportAuthorizationToken

(action-name/Configuration/Packages/ExportAuthorizationToken)

(選用)

啟用或停用匯出授權權杖功能。如果啟用,匯出的授權字符可用於手動設定套件管理員,以使用 CodeCatalyst 套件儲存庫進行身分驗證。您可以使用權杖作為可在動作中參考的環境變數。

有效值為 truefalse

ExportAuthorizationToken 如果 省略,則預設值為 false

如需匯出授權權杖的詳細資訊,請參閱 在工作流程動作中使用授權權杖

對應的 UI:組態索引標籤/套件/匯出授權權杖