

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 建置和測試動作 YAML
<a name="build-action-ref"></a><a name="test-action-ref"></a>

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

此動作定義以區段的形式存在於更廣泛的工作流程定義檔案中。如需有關此檔案的詳細資訊，請參閱[工作流程 YAML 定義](workflow-reference.md)。

在下列程式碼中選擇 YAML 屬性，以查看描述。

**注意**  
下列大多數 YAML 屬性在視覺化編輯器中都有對應的 UI 元素。若要查詢 UI 元素，請使用 **Ctrl\$1F**。 元素會與其相關聯的 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 name="build.name"></a>

(必要)

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

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

## Identifier
<a name="build.identifier"></a>

(*action-name*/**Identifier**)

識別 動作。除非您想要變更版本，否則請勿變更此屬性。如需詳細資訊，請參閱[指定要使用的動作版本](workflows-action-versions.md)。

使用 `aws/build@v1`進行建置動作。

使用 `aws/managed-test@v1` 進行測試動作。

對應的 UI：工作流程圖表/Action-name/*aws/build@v1\$1aws/managed-test@v1* 標籤

## DependsOn
<a name="build.depends-on"></a>

(*action-name*/**DependsOn**)

(選用)

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

如需 'depends on' 功能的詳細資訊，請參閱 [定序動作](workflows-depends-on.md)。

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

## Compute
<a name="build.computename"></a>

(*action-name*/**Compute**)

(選用)

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

對應的 UI：*無*

## Type
<a name="build.computetype"></a>

(*action-name*/Compute/****Type)

（如果[Compute](#build.computename)包含 則為必要）

運算引擎的類型。您可以使用下列其中一個值：
+ **EC2** （視覺化編輯器） 或 `EC2`(YAML 編輯器）

  最佳化動作執行期間的彈性。
+ **Lambda** （視覺化編輯器） 或 `Lambda`(YAML 編輯器）

  最佳化動作啟動速度。

如需運算類型的更多相關資訊，請參閱[運算類型](workflows-working-compute.md#compute.types)。

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

## Fleet
<a name="build.computefleet"></a>

(*action-name*/Compute/**Fleet**)

(選用)

指定將執行工作流程或工作流程動作的機器或機群。使用隨需機群時，當動作開始時，工作流程會佈建所需的資源，並在動作完成時銷毀機器。隨需機群的範例：`Linux.x86-64.Large`、`Linux.x86-64.XLarge`。如需隨需機群的詳細資訊，請參閱 [隨需機群屬性](workflows-working-compute.md#compute.on-demand)。

使用佈建機群，您可以設定一組專用機器來執行工作流程動作。這些機器保持閒置狀態，準備好立即處理動作。如需佈建機群的詳細資訊，請參閱 [佈建的機群屬性](workflows-working-compute.md#compute.provisioned-fleets)。

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

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

## Timeout
<a name="build.timeout"></a>

(*action-name*/**Timeout**)

(選用)

指定動作在 CodeCatalyst 結束動作之前可執行的時間，以分鐘為單位 (YAML 編輯器） 或小時和分鐘為單位。最小值為 5 分鐘，最大值如 中所述[CodeCatalyst 中工作流程的配額](workflows-quotas.md)。預設逾時與最大逾時相同。

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

## Environment
<a name="build.environment"></a>

(*action-name*/**Environment**)

(選用)

指定要與 動作搭配使用的 CodeCatalyst 環境。動作會連線至所選環境中指定的 AWS 帳戶 和選用 Amazon VPC。動作會使用環境中指定的預設 IAM 角色來連線至 AWS 帳戶，並使用 [Amazon VPC 連線](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html)中指定的 IAM 角色來連線至 Amazon VPC。

**注意**  
如果預設 IAM 角色沒有 動作所需的許可，您可以將 動作設定為使用不同的角色。如需詳細資訊，請參閱[變更 動作的 IAM 角色](deploy-environments-switch-role.md)。

如需環境的詳細資訊，請參閱 [部署至 AWS 帳戶 和 VPCs](deploy-environments.md)和 [建立環境](deploy-environments-creating-environment.md)。

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

## Name
<a name="build.environment.name"></a>

(*action-name*/Environment/**Name**)

(選用)

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

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

## Connections
<a name="build.environment.connections"></a>

(*action-name*/Environment/**Connections**)

(選用)

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

如果您未指定帳戶連線：
+ 動作會使用 CodeCatalyst 主控台中環境指定的 AWS 帳戶 連線和預設 IAM 角色。如需將帳戶連線和預設 IAM 角色新增至環境的相關資訊，請參閱 [建立環境](deploy-environments-creating-environment.md)。
+ 預設 IAM 角色必須包含 動作所需的政策和許可。若要判斷這些政策和許可是什麼，請參閱動作 YAML 定義文件中**角色**屬性的描述。

如需帳戶連線的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。如需將帳戶連線新增至環境的相關資訊，請參閱 [建立環境](deploy-environments-creating-environment.md)。

對應的 UI：組態tab/Environment/What **中是什麼？/三個點功能表/**切換角色**

## Name
<a name="build.environment.connections.name"></a>

(*action-name*/Environment/Connections/**Name**)

（如果[Connections](#build.environment.connections)包含 則為必要）

指定帳戶連線的名稱。

對應的 UI：組態tab/Environment/What在*我的環境中*？/三個點功能表/**切換角色**

## Role
<a name="build.environment.connections.role"></a>

(*action-name*/Environment/Connections/**Role**)

（如果[Connections](#build.environment.connections)包含 則為必要）

指定此動作用於在 Amazon S3 和 Amazon ECR 等 AWS 服務中存取和操作的 IAM 角色名稱。請確定此角色已新增至您 AWS 帳戶 空間中的連線。若要將 IAM 角色新增至帳戶連線，請參閱 [新增 IAM 角色至帳戶連線](ipa-connect-account-addroles.md)。

如果您未指定 IAM 角色，則動作會使用 CodeCatalyst 主控台中[環境中](deploy-environments.md)列出的預設 IAM 角色。如果您在環境中使用預設角色，請確定其具有下列政策。

**注意**  
您可以搭配此動作使用 `CodeCatalystWorkflowDevelopmentRole-spaceName`角色。如需有關此角色的詳細資訊，請參閱 [為您的帳戶和空間建立 **CodeCatalystWorkflowDevelopmentRole-*spaceName***角色](ipa-iam-roles.md#ipa-iam-roles-service-create)。了解該`CodeCatalystWorkflowDevelopmentRole-spaceName`角色具有可能造成安全風險的完整存取許可。我們建議您只在安全性較少的教學課程和案例中使用此角色。

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

對應的 UI：組態tab/Environment/What**是什麼？/三個點功能表/**切換角色**

## Caching
<a name="build.caching"></a>

(*action-name*/**Caching**)

(選用)

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

如需檔案快取的詳細資訊，請參閱 [在工作流程執行之間快取檔案](workflows-caching.md)。

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

## FileCaching
<a name="build.caching.filecaching"></a>

(*action-name*/Caching/**FileCaching**)

(選用)

區段，指定一系列快取的組態。

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

## key-name-1
<a name="build.caching.filecaching.key-name-1"></a>

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

(選用)

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

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

## Path
<a name="build.caching.filecaching.key-name-1.path"></a>

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

(選用)

指定快取的關聯路徑。

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

## RestoreKeys
<a name="build.caching.filecaching.key-name-1.restorekeys"></a>

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

(選用)

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

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

## Inputs
<a name="build.inputs"></a>

(*action-name*/**Inputs**)

(選用)

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

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

如果您需要參考位於不同輸入中的檔案 （例如來源和成品），則來源輸入是主要輸入，而成品是次要輸入。對次要輸入中檔案的參考需要特殊的字首，才能將其從主要輸入中消除。如需詳細資訊，請參閱[範例：參考多個成品中的檔案](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file)。

對應的 UI：**輸入**索引標籤

## Sources
<a name="build.inputs.sources"></a>

(*action-name*/Inputs/**Sources**)

(選用)

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

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

如需來源的詳細資訊，請參閱 [將來源儲存庫連線至工作流程](workflows-sources.md)。

對應的 UI：*無*

## Artifacts - input
<a name="build.inputs.artifacts"></a>

(*action-name*/Inputs/**Artifacts**)

(選用)

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

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

如需成品的詳細資訊，包括範例，請參閱 [在動作之間共用成品和檔案](workflows-working-artifacts.md)。

**注意**  
如果**成品 - 選用**下拉式清單無法使用 （視覺化編輯器），或者您在驗證 YAML (YAML 編輯器） 時在 中發生錯誤，可能是因為動作僅支援一個輸入。在此情況下，請嘗試移除來源輸入。

對應的 UI：輸入索引標籤/**成品 - 選用**

## Variables - input
<a name="build.inputs.variables"></a>

(*action-name*/Inputs/**Variables**)

(選用)

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

如需變數的詳細資訊，包括範例，請參閱 [在工作流程中使用變數](workflows-working-with-variables.md)。

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

## Outputs
<a name="build.outputs"></a>

(*action-name*/**Outputs**)

(選用)

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

對應的 UI：**輸出**索引標籤

## Artifacts - output
<a name="build.outputs.artifacts"></a>

(*action-name*/Outputs/**Artifacts**)

(選用)

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

如需成品的詳細資訊，包括範例，請參閱 [在動作之間共用成品和檔案](workflows-working-artifacts.md)。

對應的 UI：輸出索引標籤/**成品**

## Name
<a name="build.outputs.artifacts.name"></a>

(*action-name*/Outputs/Artifacts/**Name**)

（如果[Artifacts - output](#build.outputs.artifacts)包含 則為必要）

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

如需成品的詳細資訊，包括範例，請參閱 [在動作之間共用成品和檔案](workflows-working-artifacts.md)。

對應的 UI：輸出tab/Artifacts/New輸出/**建置成品名稱**

## Files
<a name="build.outputs.artifacts.files"></a>

(*action-name*/Outputs/Artifacts/**Files**)

（如果[Artifacts - output](#build.outputs.artifacts)包含 則為必要）

指定 CodeCatalyst 在由 動作輸出的成品中包含的檔案。這些檔案在執行時由工作流程動作產生，也可在您的來源儲存庫中使用。檔案路徑可以位於來源儲存庫或先前動作的成品中，並與來源儲存庫或成品根相關。您可以使用 glob 模式來指定路徑。範例：
+ 若要指定位於建置位置根目錄或來源儲存庫位置的單一檔案，請使用 `my-file.jar`。
+ 若要在子目錄中指定單一檔案，請使用 `directory/my-file.jar`或 `directory/subdirectory/my-file.jar`。
+ 若要指定所有檔案，請使用 `"**/*"`。`**` 全域模式表示 符合任意數量的子目錄。
+ 若要在名為 的目錄中指定所有檔案和目錄`directory`，請使用 `"directory/**/*"`。`**` 全域模式表示 符合任意數量的子目錄。
+ 若要指定名為 目錄中的所有檔案`directory`，但不是其任何子目錄，請使用 `"directory/*"`。

**注意**  
如果您的檔案路徑包含一或多個星號 (`*`) 或其他特殊字元，請以雙引號 () 括住路徑`""`。如需特殊字元的詳細資訊，請參閱 [語法準則和慣例](workflow-reference.md#workflow.terms.syntax.conv)。

如需成品的詳細資訊，包括範例，請參閱 [在動作之間共用成品和檔案](workflows-working-artifacts.md)。

**注意**  
您可能需要將字首新增至檔案路徑，以指出要尋找該路徑的成品或來源。如需詳細資訊，請參閱[參考來源儲存庫檔案](workflows-sources-reference-files.md)及[參考成品中的檔案](workflows-working-artifacts-refer-files.md)。

對應的 UI：輸出tab/Artifacts/New輸出/**建置產生的檔案**

## Variables - output
<a name="build.outputs.variables"></a>

(*action-name*/Outputs/**Variables**)

(選用)

指定您希望動作匯出的變數，以便可供後續動作使用。

如需變數的詳細資訊，包括範例，請參閱 [在工作流程中使用變數](workflows-working-with-variables.md)。

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

## variable-name-1
<a name="build.outputs.variables.name"></a>

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

(選用)

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

如需變數的詳細資訊，包括範例，請參閱 [在工作流程中使用變數](workflows-working-with-variables.md)。

對應的 UI：輸出tab/Variables/Add變數/**名稱**

## AutoDiscoverReports
<a name="build.outputs.autodiscover"></a>

(*action-name*/Outputs/**AutoDiscoverReports**)

(選用)

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

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

**注意**  
根據預設，自動探索功能會檢查所有檔案。您可以使用 [IncludePaths](#build.reports.includepaths)或 [ExcludePaths](#build.reports.excludepaths) 屬性來限制要檢查哪些檔案。

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

## Enabled
<a name="build.outputs.autodiscover.enabled"></a>

(*action-name*/Outputs/AutoDiscoverReports/**Enabled**)

(選用)

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

有效值為 `true` 或 `false`。

如果省略 `Enabled` ，則預設值為 `true`。

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

## ReportNamePrefix
<a name="build.outputs.autodiscover.reportnameprefix"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ReportNamePrefix**)

（如果 [AutoDiscoverReports](#build.outputs.autodiscover) 已包含並啟用，則為必要項目）

指定 CodeCatalyst 在找到的所有報告前面加上的字首，以命名其關聯的 CodeCatalyst 報告。例如，如果您指定字首 `AutoDiscovered`，而 CodeCatalyst 會自動探索兩個測試報告 `TestSuiteOne.xml`和 `TestSuiteTwo.xml`，則相關聯的 CodeCatalyst 報告將命名為 `AutoDiscoveredTestSuiteOne`和 `AutoDiscoveredTestSuiteTwo`。

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

## IncludePaths
<a name="build.reports.includepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**IncludePaths**)

或

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

（如果 [AutoDiscoverReports](#build.outputs.autodiscover)包含並啟用，或如果 [Reports](#test.configuration.reports) 包含，則為必要）

指定 CodeCatalyst 在搜尋原始報告時包含的檔案和檔案路徑。例如，如果您指定 `"/test/report/*"`，CodeCatalyst 會搜尋尋找`/test/report/*`目錄的動作所使用的整個[建置映像](build-images.md)。找到該目錄時，CodeCatalyst 接著會尋找該目錄中的報告。

**注意**  
如果您的檔案路徑包含一或多個星號 (`*`) 或其他特殊字元，請以雙引號 () 括住路徑`""`。如需特殊字元的詳細資訊，請參閱 [語法準則和慣例](workflow-reference.md#workflow.terms.syntax.conv)。

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

**注意**  
對於手動設定的報告， `IncludePaths` 必須是符合單一檔案的 glob 模式。

對應的 UI：
+ 輸出tab/Reports/Auto探索reports/Include/exclude路徑/**包含路徑**
+ 輸出tab/Reports/Manually設定報告/*報告名稱-1*/包含/排除路徑/**包含路徑**

## ExcludePaths
<a name="build.reports.excludepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ExcludePaths**)

或

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

(選用)

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

**注意**  
如果您的檔案路徑包含一或多個星號 (`*`) 或其他特殊字元，請以雙引號 () 括住路徑`""`。如需特殊字元的詳細資訊，請參閱 [語法準則和慣例](workflow-reference.md#workflow.terms.syntax.conv)。

對應的 UI：
+ 輸出tab/Reports/Auto探索reports/Include/exclude路徑/**排除路徑**
+ 輸出tab/Reports/Manually設定報告/*報告名稱-1*/包含/排除路徑/**排除路徑**

## SuccessCriteria
<a name="build.reports.successcriteria"></a>

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

或

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

(選用)

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

如需詳細資訊，請參閱[設定報告的成功條件](test-config-action.md#test.success-criteria)。

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

## PassRate
<a name="build.reports.successcriteria.passrate"></a>

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

或

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

(選用)

指定測試報告中必須傳遞的測試百分比，相關 CodeCatalyst 報告才能標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。通過率條件僅適用於測試報告。如需測試報告的詳細資訊，請參閱 [測試報告](test-workflow-actions.md#test-reports)。

對應的 UI：輸出tab/Reports/Success條件/**通過率**

## LineCoverage
<a name="build.reports.successcriteria.linecoverage"></a>

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

或

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

(選用)

指定程式碼涵蓋範圍報告中必須涵蓋的行數百分比，以便將相關聯的 CodeCatalyst 報告標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。明細涵蓋範圍條件只會套用至程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊，請參閱 [程式碼涵蓋範圍報告](test-workflow-actions.md#test-code-coverage-reports)。

對應的 UI：輸出tab/Reports/Success條件/**行涵蓋**範圍

## BranchCoverage
<a name="build.reports.successcriteria.branchcoverage"></a>

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

或

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

(選用)

指定程式碼涵蓋範圍報告中必須涵蓋的分支百分比，以便將關聯的 CodeCatalyst 報告標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。分支涵蓋範圍條件僅適用於程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊，請參閱 [程式碼涵蓋範圍報告](test-workflow-actions.md#test-code-coverage-reports)。

對應的 UI：輸出tab/Reports/Success條件/**分支涵蓋範圍**

## Vulnerabilities
<a name="build.reports.successcriteria.vulnerabilities"></a>

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

或

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

(選用)

針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SCA 報告中允許的漏洞數量和嚴重性上限。若要指定漏洞，您必須指定：
+ 您要包含在計數中的漏洞最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

  例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 漏洞將會很高。
+ 您想要允許之指定嚴重性的漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

漏洞條件只會套用至 SCA 報告。如需 SCA 報告的詳細資訊，請參閱 [軟體合成分析報告](test-workflow-actions.md#test-sca-reports)。

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

對應的 UI：輸出tab/Reports/Success條件/**漏洞**

## StaticAnalysisBug
<a name="build.reports.successcriteria.bugs"></a>

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

或

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

(選用)

針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的錯誤數量和嚴重性上限。若要指定錯誤，您必須指定：
+ 您要包含在計數中錯誤的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

  例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 錯誤將會很高。
+ 您想要允許之指定嚴重性的錯誤數目上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

錯誤條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

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

對應的 UI：輸出tab/Reports/Success條件/**錯誤**

## StaticAnalysisSecurity
<a name="build.reports.successcriteria.securityvulnerabilities"></a>

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

或

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

(選用)

針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的安全漏洞數量和嚴重性上限。若要指定安全漏洞，您必須指定：
+ 您要包含在計數中的安全漏洞的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

  例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 安全漏洞將會很高。
+ 您想要允許之指定嚴重性的安全漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

安全漏洞條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

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

對應的 UI：輸出tab/Reports/Success條件/**安全漏洞**

## StaticAnalysisQuality
<a name="build.reports.successcriteria.qualityissues"></a>

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

或

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

(選用)

針對要標示為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的品質問題數量和嚴重性上限。若要指定品質問題，您必須指定：
+ 您要包含在計數中品質問題的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

  例如，如果您選擇 `HIGH`，則 `HIGH`和`CRITICAL`品質問題將會很高。
+ 您想要允許之指定嚴重性的品質問題數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

品質問題條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

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

對應的 UI：輸出tab/Reports/Success條件/**品質問題**

## StaticAnalysisFinding
<a name="build.reports.successcriteria.findings"></a>

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

或

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

(選用)

針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的問題清單數量和嚴重性上限。若要指定問題清單，您必須指定：
+ 您要包含在計數中之問題清單的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

  例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL`問題清單將會加長。
+ 您想要允許之指定嚴重性的問題清單數目上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

調查結果只會套用至 SARIF SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

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

對應的 UI：輸出tab/Reports/Success條件/**調查結果**

## Reports
<a name="test.configuration.reports"></a>

(*action-name*/Outputs/**Reports**)

(選用)

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

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

## report-name-1
<a name="test.configuration.reports.report-name-1"></a>

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

（如果[Reports](#test.configuration.reports)包含 則為必要）

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

對應的 UI：輸出tab/Reports/Manually設定報告/**報告名稱**

## Format
<a name="test.configuration.reports.name.testresults.format"></a>

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

（如果[Reports](#test.configuration.reports)包含 則為必要）

指定您用於報告的檔案格式。可能的值如下。
+ 對於測試報告：
  + 針對 Cucumber JSON，指定 **Cucumber** （視覺化編輯器） 或 `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 產生的 SimpleCov JSON，而非 [simplecov-json](https://github.com/vicentllongo/simplecov-json)，請指定 **Simplecov** （視覺化編輯器） 或 `SIMPLECOV`(YAML 編輯器）。 [https://github.com/simplecov-ruby/simplecov](https://github.com/simplecov-ruby/simplecov)
+ 對於軟體合成分析 (SCA) 報告：
  + 對於 SARIF，指定 **SARIF** （視覺編輯器） 或 `SARIFSCA`(YAML 編輯器）。

對應的 UI：輸出tab/Reports/Manually設定reports/Add/configure報告/*report-name-1*/**報告類型**和**報告格式**

## Configuration
<a name="build.configuration"></a>

(*action-name*/**Configuration**)

（必要） 您可以在此區段定義 動作的組態屬性。

對應的 UI：**組態**索引標籤

## Container
<a name="build.configuration.container"></a>

(*action-name*/Configuration/**Container**)

(選用)

指定 動作用來完成其處理的 Docker 映像或*容器*。您可以指定 CodeCatalyst 隨附的其中一個[作用中映像](build-images.md#build-curated-images)，也可以使用自己的映像。如果您選擇使用自己的映像，它可以位於 Amazon ECR、Docker Hub 或其他登錄檔中。如果您未指定 Docker 映像，動作會使用其中一個作用中映像進行處理。如需預設使用哪些作用中映像的詳細資訊，請參閱 [作用中映像](build-images.md#build-curated-images)。

如需指定您自己的 Docker 映像的詳細資訊，請參閱 [將自訂執行期環境 Docker 映像指派給 動作](build-images.md#build-images-specify)。

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

## Registry
<a name="build.configuration.container.registry"></a>

(*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 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。（如果需要，您可以修改現有角色以包含許可和政策。)

  IAM 角色必須在其角色政策中包含下列許可：
  + `ecr:BatchCheckLayerAvailability`
  + `ecr:BatchGetImage`
  + `ecr:GetAuthorizationToken`
  + `ecr:GetDownloadUrlForLayer`

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

  如需建立 IAM 角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[使用自訂信任政策 （主控台） 建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

  建立角色之後，您必須透過 環境將其指派給 動作。如需詳細資訊，請參閱[將環境與 動作建立關聯](deploy-environments-add-app-to-environment.md)。

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

## Image
<a name="build.configuration.container.image"></a>

(*action-name*/Configuration/Container/**Image**)

（如果`Container`包含 則為必要）

請指定下列其中一項：
+ 如果您使用`CODECATALYST`登錄檔，請將映像設定為下列其中一個[作用中映像](build-images.md#build-curated-images)：
  + `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
<a name="build.configuration.steps"></a>

(*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
```

如需指定檔案路徑的詳細資訊，請參閱 [參考來源儲存庫檔案](workflows-sources-reference-files.md)和 [參考成品中的檔案](workflows-working-artifacts-refer-files.md)。

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

## Packages
<a name="build.configuration.packages"></a>

(*action-name*/Configuration/**Packages**)

(選用) 

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

如需套件的詳細資訊，請參閱 [在 CodeCatalyst 中發佈和共用軟體套件](packages.md)。

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

## NpmConfiguration
<a name="build.configuration.packages.npm"></a>

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

（如果[Packages](#build.configuration.packages)包含 則為必要）

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

如需 npm 套件組態的詳細資訊，請參閱 [使用 NPM](packages-npm.md)。

對應的 UI：組態tab/Packages/Add組態/**npm**

## PackageRegistries
<a name="build.configuration.packages.registry"></a>

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

（如果[Packages](#build.configuration.packages)包含 則為必要）

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

對應的 UI：組態tab/Packages/Add組態/npm/**新增套件儲存庫**

## PackagesRepository
<a name="build.configuration.packages.repository"></a>

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

（如果[Packages](#build.configuration.packages)包含 則為必要）

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

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

如需套件儲存庫的詳細資訊，請參閱 [套件儲存庫](packages-concepts.md#packages-concepts-repository)。

對應的 UI：組態tab/Packages/Addconfiguration/npm/Add套件儲存庫/**套件儲存庫**

## Scopes
<a name="build.configuration.packages.scope"></a>

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

(選用) 

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

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

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

如需範圍的詳細資訊，請參閱 [套件命名空間](packages-concepts.md#packages-concepts-package-namespaces)和[範圍套件](https://docs.npmjs.com/cli/v10/using-npm/scope)。

對應的 UI：組態tab/Packages/Addconfiguration/npm/Add套件儲存庫/**範圍 - 選用**

## ExportAuthorizationToken
<a name="build.configuration.packages.exportauthtoken"></a>

(*action-name*/Configuration/Packages/**ExportAuthorizationToken**)

(選用) 

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

有效值為 `true` 或 `false`。

如果省略 `ExportAuthorizationToken` ，則預設值為 `false`。

如需匯出授權字符的詳細資訊，請參閱 [在工作流程動作中使用授權字符](workflows-package-export-token.md)。

對應的 UI：組態索引標籤/套件/**匯出授權字符**