生成和测试操作 YAML - Amazon CodeCatalyst

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

生成和测试操作 YAML

以下是生成和测试操作的YAML定义。两个动作只有一个参考,因为它们的YAML属性非常相似。

此操作定义作为一个部分存在于更广泛的工作流程定义文件中。有关此文件的更多信息,请参阅 工作流程YAML定义

在以下代码中选择一个YAML属性以查看其描述。

注意

接下来的大多数YAML属性在可视化编辑器中都有相应的用户界面元素。要查找用户界面元素,请使用 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

动作名称

(必需)

指定操作的名称。所有操作名称在工作流程中必须是唯一的。操作名称仅限于字母数字字符(a-z、A-Z、0-9)、连字符 (-) 和下划线 (_)。不允许使用空格。不能使用引号在操作名称中启用特殊字符和空格。

对应的 UI:“配置” 选项卡/ 操作名称

Identifier

(action-name/Identifier)

标识操作。除非要更改版本,否则请勿更改此属性。有关更多信息,请参阅 指定要使用的操作版本

aws/build@v1用于生成操作。

aws/managed-test@v1用于测试操作。

相应的用户界面:工作流程图/操作名称/aws/build@v1|aws/managed-test@v1 label

DependsOn

(action-name/DependsOn)

(可选)

指定必须成功运行才能运行此操作的操作、操作组或门。

有关 “依赖” 功能的更多信息,请参阅。排序动作

对应的用户界面:“输入” 选项卡/ 依赖- 可选

Compute

(action-name/Compute)

(可选)

用于运行工作流程操作的计算引擎。您可以在工作流程级别或操作级别指定计算,但不能同时指定两者。在工作流级别指定时,计算配置将应用于工作流中定义的所有操作。在工作流程级别,您还可以在同一个实例上运行多个操作。有关更多信息,请参阅 跨操作共享计算

对应的用户界面:

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)

(可选)

指定操作在 CodeCatalyst 结束操作之前可以运行的时间(YAML以分钟(编辑器)或小时和分钟(可视化编辑器)为单位。最小值为 5 分钟,最大值如中所述中的工作流程配额 CodeCatalyst。默认超时与最大超时相同。

相应的 UI:“配置” 选项卡/ “超时”- 可选

Environment

(action-name/Environment)

(可选)

指定要用于操作的 CodeCatalyst 环境。该操作关联到在所选环境中VPC指定的 AWS 账户 和可选的 Amazon。该操作使用在环境中指定的默认IAM角色连接到 AWS 账户,并使用在亚马逊VPC连接中指定的IAM角色来连接亚马逊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 账户。有关向环境添加账户连接的信息,请参阅创建环境

对应tab/Environment/What的用户界面:配置已在 my-environment/三点菜单/ 切换角色

Name

(action-name/Environment/Connections/Name)

(如果包含Connections,则为必填项)

指定账户连接的名称。

对应tab/Environment/What的用户界面:配置已在 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角色具有完全访问权限,这可能会带来安全风险。我们建议您仅在教程和安全性较低的场景中使用此角色。

警告

将权限限制为生成和测试操作所需的权限。使用具有更广泛权限的角色可能会带来安全风险。

对应tab/Environment/What的用户界面:配置已在 my-environment/三点菜单/ 切换角色

Caching

(action-name/Caching)

(可选)

在此部分中,您可以指定缓存来保存磁盘上的文件,并在后续的工作流程运行中从该缓存中恢复这些文件。

有关文件缓存的更多信息,请参阅在工作流程运行之间缓存文件

对应的用户界面:配置选项卡/ 文件缓存- 可选

FileCaching

(action-name/Caching/FileCaching)

(可选)

指定缓存序列配置的部分。

对应的用户界面:配置选项卡/文件缓存-可选/添加缓存

密钥名称-1

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

(可选)

指定主缓存属性名称的名称。缓存属性名称在您的工作流程中必须是唯一的。每个操作中最多可以有五个条目FileCaching

对应的用户界面:配置tab/File caching - optional/Add缓存/密钥

Path

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

(可选)

为您的缓存指定关联路径。

对应的用户界面:配置tab/File caching - optional/Add缓存/路径

RestoreKeys

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

(可选)

指定在找不到主缓存属性时用作备用还原密钥。恢复密钥名称在您的工作流程中必须是唯一的。每个缓存中最多可以有五个条目RestoreKeys

相应的 UI:配置tab/File caching - optional/Add缓存/ 还原密钥-可选

Inputs

(action-name/Inputs)

(可选)

Inputs部分定义了操作在工作流程运行期间所需的数据。

注意

每个构建操作或测试操作最多允许四个输入(一个源和三个工件)。变量不计入此总数。

如果您需要引用驻留在不同输入(比如源和构件)中的文件,则源输入是主输入,构件是辅助输入。辅助输入中对文件的引用采用特殊前缀,以区分主输入中的文件。有关详细信息,请参阅示例:引用多个构件中的文件

相应的 UI:“输入” 选项卡

Sources

(action-name/Inputs/Sources)

(可选)

指定代表操作所需的源存储库的标签。当前,唯一支持的标签是WorkflowSource,它表示存储工作流程定义文件的源存储库。

如果省略源,则必须在下action-name/Inputs/Artifacts方指定至少一个输入对象。

更多有关来源的信息,请参阅 将源存储库连接到工作流程

对应的用户界面:

Artifacts - input

(action-name/Inputs/Artifacts)

(可选)

指定要作为此操作输入的先前操作中的对象。在之前的操作中,这些构件必须已定义为输出对象。

如果您未指定任何输入构件,则必须至少在下方指定一个源存储库action-name/Inputs/Sources

有关构件的更多信息(包括示例),请参阅在操作之间共享构件和文件

注意

如果 “Artifacts-可选” 下拉列表不可用(可视化编辑器),或者在验证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)

(可选)

指定操作生成的对象的名称。Artifact 名称在工作流程中必须是唯一的,并且仅限于字母数字字符(a-z、A-Z、0-9)和下划线 (_)。不允许使用空格、连字符 (-) 和其他特殊字符。不能使用引号在输出对象名称中启用空格、连字符和其他特殊字符。

有关构件的更多信息(包括示例),请参阅在操作之间共享构件和文件

相应的 UI:“输出” 选项卡/ 工件

Name

(action-name/Outputs/Artifacts/Name)

(如果包含Artifacts - output,则为必填项)

指定操作生成的对象的名称。Artifact 名称在工作流程中必须是唯一的,并且仅限于字母数字字符(a-z、A-Z、0-9)和下划线 (_)。不允许使用空格、连字符 (-) 和其他特殊字符。不能使用引号在输出对象名称中启用空格、连字符和其他特殊字符。

有关构件的更多信息(包括示例),请参阅在操作之间共享构件和文件

对应的用户界面:输出tab/Artifacts/New输出/ 构建构件名称

Files

(action-name/Outputs/Artifacts/Files)

(如果包含Artifacts - output,则为必填项)

指定操作输出的对象中 CodeCatalyst 包含的文件。这些文件由工作流程操作在运行时生成,也可在您的源存储库中找到。文件路径可以位于源存储库或先前操作中的对象中,并且是相对于源存储库或项目根目录的。你可以使用 glob 模式来指定路径。示例:

  • 要指定位于构建位置或源存储库位置根目录中的单个文件,请使用 my-file.jar

  • 要在子目录中指定单个文件,请使用 directory/my-file.jardirectory/subdirectory/my-file.jar

  • 要指定所有文件,请使用 "**/*"** glob 模式表示匹配任意数量的子目录。

  • 要指定名为 directory 的目录中的所有文件和目录,请使用 "directory/**/*"** glob 模式表示匹配任意数量的子目录。

  • 要指定名为 directory 的目录中的所有文件,而非其任意子目录,请使用 "directory/*"

注意

如果您的文件路径包含一个或多个星号 (*) 或其他特殊字符,请用双引号 () 将路径括起来。""有关特殊字符的更多信息,请参见语法指南和惯例

有关构件的更多信息(包括示例),请参阅在操作之间共享构件和文件

注意

您可能需要在文件路径中添加前缀,以指明要在哪个工件或来源中找到它。有关更多信息,请参阅引用源存储库文件在构件中引用文件

对应的用户界面:tab/Artifacts/New输出输出/编译生成的文件

Variables - output

(action-name/Outputs/Variables)

(可选)

指定要导出操作的变量,以便后续操作可以使用这些变量。

有关变量的更多信息(包括示例),请参阅在工作流程中使用变量

相应的用户界面:“输出” 选项卡/变量/ 添加变量

变量名-1

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

(可选)

指定要导出操作的变量的名称。此变量必须已经在同一操作的InputsSteps部分中定义。

有关变量的更多信息(包括示例),请参阅在工作流程中使用变量

对应的用户界面:输出tab/Variables/Add变量/名称

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自动发现两个测试报告TestSuiteTwo.xmlTestSuiteOne.xml则关联 CodeCatalyst 的报告将命名为 AutoDiscoveredTestSuiteOne and。AutoDiscoveredTestSuiteTwo

相应的 UI:“输出” 选项卡/报告/前缀名称

IncludePaths

(action-name/Outputs/AutoDiscoverReports/IncludePaths)

Or

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

(如果AutoDiscoverReports包含并启用,或者包含在内,Reports则为必填项)

指定搜索原始报告时 CodeCatalyst 包含的文件和文件路径。例如,如果您指定"/test/report/*",则会在操作使用的整个构建映像中 CodeCatalyst 搜索该/test/report/*目录。当它找到该目录时, CodeCatalyst 然后在该目录中查找报告。

注意

如果您的文件路径包含一个或多个星号 (*) 或其他特殊字符,请用双引号 () 将路径括起来。""有关特殊字符的更多信息,请参见语法指南和惯例

如果省略此属性,则默认值为"**/*",这意味着搜索包括所有路径的所有文件。

注意

对于手动配置的报告,IncludePaths必须是与单个文件匹配的 glob 模式。

对应的用户界面:

  • 输出tab/Reports/Auto-discover reports/Include/exclude路径/ 包含路径

  • 输出tab/Reports/Manually配置报告/report-name-1/包含/排除路径/包含路径

ExcludePaths

(action-name/Outputs/AutoDiscoverReports/ExcludePaths)

Or

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

(可选)

指定搜索原始报告时 CodeCatalyst 排除的文件和文件路径。例如,如果您指定"/test/my-reports/**/*",则 CodeCatalyst 不会在/test/my-reports/目录中搜索文件。要忽略目录中的所有文件,请使用 **/* glob 模式。

注意

如果您的文件路径包含一个或多个星号 (*) 或其他特殊字符,请用双引号 () 将路径括起来。""有关特殊字符的更多信息,请参见语法指南和惯例

对应的用户界面:

  • 输出tab/Reports/Auto-discover reports/Include/exclude路径/ 排除路径

  • 输出tab/Reports/Manually配置报告/report-name-1/包含/排除路径/排除路径

SuccessCriteria

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria)

Or

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

(可选)

为测试、代码覆盖率、软件组成分析 (SCA) 和静态分析 (SA) 报告指定成功标准。

有关更多信息,请参阅 为报告配置成功标准

相应的 UI:“输出” 选项卡/报告/成功标准

PassRate

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

Or

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

(可选)

指定测试报告中必须通过测试的百分比,关联 CodeCatalyst的报告才会被标记为通过。有效值包括十进制数字。例如,5060.5。通过率标准仅适用于测试报告。有关测试报告的更多信息,请参阅测试报告

对应的用户界面:输出tab/Reports/Success标准/通过率

LineCoverage

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

Or

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

(可选)

指定代码覆盖率报告中必须覆盖的行数百分比,关联 CodeCatalyst 的报告才会被标记为通过。有效值包括十进制数字。例如,5060.5。线路覆盖率标准仅适用于代码覆盖率报告。有关代码覆盖率报告的更多信息,请参阅代码覆盖率报告

对应的用户界面:输出tab/Reports/Success标准/线路覆盖率

BranchCoverage

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

Or

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

(可选)

指定代码覆盖率报告中必须覆盖的分支百分比才能将关联 CodeCatalyst 报告标记为已通过。有效值包括十进制数字。例如,5060.5。分支覆盖率标准仅适用于代码覆盖率报告。有关代码覆盖率报告的更多信息,请参阅代码覆盖率报告

相应的 UI:输出tab/Reports/Success标准/分支覆盖率

Vulnerabilities

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

Or

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

(可选)

指定报告中允许将关联SCA CodeCatalyst 报告标记为已通过的最大漏洞数量和严重性。要指定漏洞,必须指定:

  • 要计入的漏洞的最低严重程度。有效值(从最严重到最不严重)为:CRITICALHIGHMEDIUMLOWINFORMATIONAL

    例如,如果您选择HIGH,则将对CRITICAL漏洞HIGH进行统计。

  • 您希望允许的指定严重性的漏洞的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

漏洞标准仅适用于SCA报告。有关SCA报告的更多信息,请参阅软件成分分析报告

要指定最低严重性,请使用Severity属性。要指定最大漏洞数,请使用Number属性。

相应的 UI:输出tab/Reports/Success标准/漏洞

StaticAnalysisBug

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

Or

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

(可选)

指定 SA 报告中允许将关联 CodeCatalyst 报告标记为已通过的最大错误数量和严重性。要指定错误,必须指定:

  • 您要计入的错误的最低严重程度。有效值(从最严重到最不严重)为:CRITICALHIGHMEDIUMLOWINFORMATIONAL

    例如,如果您选择HIGH,则会HIGHCRITICAL错误进行统计。

  • 您希望允许的指定严重程度的错误的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

错误标准仅适用于 PyLint 和 ESLint SA 报告。有关 SA 报告的更多信息,请参阅静态分析报告

要指定最低严重性,请使用Severity属性。要指定最大漏洞数,请使用Number属性。

对应的用户界面:输出tab/Reports/Success标准/错误

StaticAnalysisSecurity

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

Or

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

(可选)

指定 SA 报告中允许将关联 CodeCatalyst 报告标记为已通过的安全漏洞的最大数量和严重性。要指定安全漏洞,必须指定:

  • 您要计入的安全漏洞的最低严重程度。有效值(从最严重到最不严重)为:CRITICALHIGHMEDIUMLOWINFORMATIONAL

    例如,如果您选择HIGH,则将对HIGHCRITICAL安全漏洞进行统计。

  • 您希望允许的指定严重性的安全漏洞的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

安全漏洞标准仅适用于 PyLint 和 ESLint SA 报告。有关 SA 报告的更多信息,请参阅静态分析报告

要指定最低严重性,请使用Severity属性。要指定最大漏洞数,请使用Number属性。

相应的 UI:输出tab/Reports/Success标准/安全漏洞

StaticAnalysisQuality

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

Or

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

(可选)

指定 SA 报告中允许将相关 CodeCatalyst 报告标记为已通过的最大质量问题数量和严重程度。要指定质量问题,必须指定:

  • 您要计入的质量问题的最低严重程度。有效值(从最严重到最不严重)为:CRITICALHIGHMEDIUMLOWINFORMATIONAL

    例如,如果您选择 HIGHHIGH,则将统计CRITICAL质量问题。

  • 您希望允许的具有指定严重性的质量问题的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

质量问题标准仅适用于 PyLint 和 ESLint SA 报告。有关 SA 报告的更多信息,请参阅静态分析报告

要指定最低严重性,请使用Severity属性。要指定最大漏洞数,请使用Number属性。

相应的用户界面:输出tab/Reports/Success标准/质量问题

StaticAnalysisFinding

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

Or

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

(可选)

指定 SA 报告中允许将关联 CodeCatalyst 报告标记为通过的最大结果数量和严重性。要指定调查结果,必须指定:

  • 要计入计数的发现的最低严重程度。有效值(从最严重到最不严重)为:CRITICALHIGHMEDIUMLOWINFORMATIONAL

    例如,如果您选择HIGH,则将HIGHCRITICAL结果进行统计。

  • 您希望允许的指定严重性的最大发现次数。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

调查结果仅适用于 SARIF SA 报告。有关 SA 报告的更多信息,请参阅静态分析报告

要指定最低严重性,请使用Severity属性。要指定最大漏洞数,请使用Number属性。

相应的 UI:输出tab/Reports/Success标准/调查结果

Reports

(action-name/Outputs/Reports )

(可选)

指定测试报告配置的部分。

相应的 UI:“输出” 选项卡/ “报告”

报告名称 1

(action-name/Outputs/Reports/报告名称-1)

(如果包含Reports,则为必填项)

您要为将从原始 CodeCatalyst 报告生成的报告命名。

相应的 UI:输出tab/Reports/Manually配置报告/ 报告名称

Format

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

(如果包含Reports,则为必填项)

指定您用于报告的文件格式。可能值如下所示。

  • 对于测试报告:

    • 对于黄瓜JSON,请指定 Cu c umber(可视化编辑器)或CUCUMBERJSON(YAML编辑器)。

    • 对于 JUnitXML,指定 JUnit(可视化编辑器)或JUNITXML(YAML编辑器)。

    • 对于 NUnitXML,指定 NUnit(可视化编辑器)或NUNITXML(YAML编辑器)。

    • 对于 NUnit 3XML,指定 NUnit3(可视化编辑器)或NUNIT3XML(YAML编辑器)。

    • 对于 Visual StudioTRX,请指定 Visual Studio TRXVISUALSTUDIOTRX(可视化YAML编辑器)或(

    • 对于 testNGXML,请指定 te stNG(可视化编辑器)或TESTNGXML(编辑器)。YAML

  • 有关代码覆盖率报告:

    • 对于 CloverXML,请指定 Clover(可视化编辑器)或CLOVERXML(YAML编辑器)。

    • 对于 CoberturaXML,请指定 Cobertura(可视化编辑器)或COBERTURAXML(编辑器)。YAML

    • 对于 JaCoCo XML,指定 JaCoCo(可视化编辑器)或JACOCOXML(YAML编辑器)。

    • 对于由 s implecov 而不是 simplecov -json SimpleCov JSON 生成的,请指定 Sim plecov(可视化编辑器)或(编辑器)。SIMPLECOV YAML

  • 对于软件组成分析 (SCA) 报告:

    • 对于SARIF,指定 SARIF(可视化编辑器)或SARIFSCA(YAML编辑器)。

相应的用户界面:输出tab/Reports/Manually configure reports/Add/configure报告/report-name-1/报告类型报告格式

Configuration

(action-name/Configuration)

(必填)一个部分,您可以在其中定义操作的配置属性。

相应的 UI:“配置” 选项卡

Container

(action-name/Configuration/Container)

(可选)

指定操作用于完成其处理的 Docker 镜像或容器。您可以指定随附的活动图像之一 CodeCatalyst,也可以使用自己的图像。如果您选择使用自己的映像,则可以将其存放在亚马逊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 弹性容器注册表(可视化编辑器)或ECR(YAML编辑器)

    该图像存储在 Amazon 弹性容器注册表镜像存储库中。要使用亚马逊ECR存储库中的图片,此操作需要访问亚马逊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用户指南》中的使用自定义信任策略(控制台)创建角色。

    创建角色后,必须通过环境将其分配给操作。有关更多信息,请参阅 将环境与操作关联

相应的用户界面:亚马逊弹性容器注册表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

  • 如果您使用的是亚马逊ECR注册表,请将图像设置为亚马逊ECR注册表URI。

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

  • 如果您使用的是自定义注册表,请将映像设置为自定义注册表所期望的值。

相应的 UI:运行时环境 docker 镜像(如果注册表是CODECATALYST)、Docker Hub 镜像(如果注册表是 Docker Hu b)、镜ECR像 URL(如果注册表是 Amazon Elastic Container Regist ry)和镜像 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

对应的用户界面:配置tab/Packages/Add配置/ npm

PackageRegistries

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

(如果包含Packages,则为必填项)

您可以在其中定义一系列软件包存储库的配置属性的部分。

对应的 UI:配置tab/Packages/Add configuration/npm/添加软件包存储库

PackagesRepository

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

(如果包含Packages,则为必填项)

指定您希望该操作使用的 CodeCatalyst 软件包存储库的名称。

如果您指定多个默认存储库,则最后一个存储库将优先。

有关软件包存储库的更多信息,请参阅Package 存储库

相应的 UI:配置tab/Packages/Add configuration/npm/Add包存储库/ Package 存储库

Scopes

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

(可选)

指定要在软件包注册表中定义的范围序列。定义作用域时,将指定的包存储库配置为所有列出的作用域的注册表。如果通过 npm 客户端请求具有作用域的软件包,它将使用该存储库而不是默认存储库。每个作用域名称必须以 “@” 为前缀。

如果您包含覆盖作用域,则最后一个存储库将优先。

如果Scopes省略,则将指定的包存储库配置为该操作使用的所有包的默认注册表。

有关作用域的更多信息,请参阅Package 命名空间作用域包

相应的 UI:配置tab/Packages/Add configuration/npm/Add包存储库/ 作用域-可选

ExportAuthorizationToken

(action-name/Configuration/Packages/ExportAuthorizationToken)

(可选)

启用或禁用导出授权令牌功能。如果启用,则可以使用导出的授权令牌来手动配置软件包管理器以使用软件 CodeCatalyst 包存储库进行身份验证。您可以将该令牌用作可在操作中引用的环境变量。

有效值为 truefalse

如果省略,ExportAuthorizationToken则默认为false

有关出口授权令牌的更多信息,请参阅在工作流程操作中使用授权令牌

相应的 UI:“配置” 选项卡/包/ 导出授权令牌