'GitHub 操作'动作 YAML - 亚马逊 CodeCatalyst

从2025年11月7日起,亚马逊 CodeCatalyst 将不再向新客户开放。如果您想使用该服务,请在2025年11月7日之前注册。有关更多信息,请参阅 如何迁移 CodeCatalyst

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

'GitHub 操作'动作 YAML

以下是 “GitHub操作” 操作的 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/github-actions-runner@v1 DependsOn: - dependent-action-name-1 Compute: Fleet: fleet-name Timeout: timeout-minutes Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name 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: - github-output/artifact-1.jar - "github-output/build*" - Name: output-artifact-2 Files: - github-output/artifact-2.1.jar - github-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 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 Configuration Steps: - github-actions-code

action-name

(必需)

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

对应的 UI:“配置” 选项卡/ action-name

Identifier

(action-name/Identifier)

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

aws/github-actions-runner@v1用于GitHub操作操作。

对应的用户界面:工作流程图// awsaction-name/@v1 标签 github-actions-runner

DependsOn

(action-name/DependsOn)

(可选)

指定必须成功运行才能使该操作运行的操作、操作组或阶段门。

有关“依赖于”功能的更多信息,请参阅顺序操作

对应的 UI:“输入”选项卡/依赖于 – 可选

Compute

(action-name/Compute)

(可选)

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

对应的 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 环境。该操作连接到在所选环境中指定的 AWS 账户 和可选的 Amazon VPC。该操作使用环境中指定的默认 IAM 角色连接到 AWS 账户,并使用在 A mazon VPC 连接中指定的 IAM 角色连接到亚马逊 VPC。

注意

如果默认 IAM 角色不具有操作所需的权限,则可以将操作配置为使用其他角色。有关更多信息,请参阅更改操作的 IAM 角色

有关环境的更多信息,请参阅部署到 AWS 账户 和 VPCs创建环境

对应的 UI:“配置”选项卡/环境

Name

(action-name/Environment/Name)

(如果包含 Environment,则为必需)

指定要与操作关联的现有环境的名称。

对应的 UI:“配置”选项卡/环境

Connections

(action-name/Environment/Connections)

(可选)

指定要与操作关联的账户连接。您在 Environment 下最多只能指定一个账户连接。

如果您不指定账户连接:

  • 该操作使用 CodeCatalyst 控制台中环境中指定的 AWS 账户 连接和默认 IAM 角色。有关向环境添加账户连接和默认 IAM 角色的信息,请参阅创建环境

  • 默认 IAM 角色必须包含操作所需的策略和权限。要具体确定这些策略和权限,请参阅操作的 YAML 定义文档中 Role 属性的描述。

有关账户连接的更多信息,请参阅允许在已连接的情况下访问 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,则为必需)

指定 IAM 角色的名称,该操作使用此角色来访问 Amazon S3 和 Amazon ECR 等 AWS 服务并在其中进行处理。确保将此角色添加到空间中的 AWS 账户 连接。要向账户连接添加 IAM 角色,请参阅将 IAM 角色添加到账户连接

如果您未指定 IAM 角色,则该操作将使用 CodeCatalyst 控制台中环境中列出的默认 IAM 角色。如果您使用此环境中的默认角色,请确保该角色具有以下策略。

注意

您可以将 CodeCatalystWorkflowDevelopmentRole-spaceName 角色用于此操作。有关该角色的更多信息,请参阅为您的账户和空间创建 CodeCatalystWorkflowDevelopmentRole-spaceName 角色。了解 CodeCatalystWorkflowDevelopmentRole-spaceName 角色具有完全访问权限可能会带来安全风险。我们建议您仅在教程和安全要求较低的场景中使用此角色。

警告

将权限限制为 “GitHub 操作” 操作所需的权限。使用具有更广泛权限的角色可能会带来安全风险。

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

Inputs

(action-name/Inputs)

(可选)

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

注意

每个 “GitHub 操作” 操作最多允许四个输入(一个源和三个构件)。变量不计入此总数。

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

对应的 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)和下划线(_)。不允许使用空格、连字符(-)和特殊字符。不能使用引号以使输出构件名称包含空格、连字符和其他特殊字符。

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

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

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/*"

注意

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

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

注意

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

相应的 UI:输出tab/Artifacts/Add构件/编译生成的文件

Variables - output

(action-name/Outputs/Variables)

(可选)

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

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

对应的 UI:“输出”选项卡/变量/添加变量

variable-name-1

(action-name/Outputs/Variables变量名-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:输出tab/Reports/Automatically发现报告/ 报告前缀

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:

  • 输出tab/Reports/Automatically discover reports/'Include/exclude路径'/包括路径

  • 输出tab/Reports/Manually配置报告/ 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:

  • 输出tab/Reports/Automatically discover reports/'Include/exclude路径'/排除路径

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

SuccessCriteria

(action-name/Outputs/AutoDiscoverReports/SuccessCriteria)

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

(可选)

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

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

对应的 UI:

  • 产出tab/Reports/Automatically发现报告/ 成功标准

  • 输出tab/Reports/Manually配置报告/report-name-1/成功标准

PassRate

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

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

(可选)

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

对应的 UI:

  • 输出tab/Reports/Automatically discover reports/Success标准/通过率

  • 输出tab/Reports/Manually配置报告 report-name-1 //成功标准/通过率

LineCoverage

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

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

(可选)

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

对应的 UI:

  • 输出tab/Reports/Automatically discover reports/Success标准/线路覆盖范围

  • 输出tab/Reports/Manually配置报告 report-name-1 //成功标准/线路覆盖率

BranchCoverage

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

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

(可选)

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

对应的 UI:

  • 产出tab/Reports/Automatically discover reports/Success标准/分支机构覆盖范围

  • 输出tab/Reports/Manually配置报告 report-name-1 //成功标准/分支覆盖范围

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 属性。

有关 SCA 报告的更多信息,请参阅质量报告类型

对应的 UI:

  • 输出tab/Reports/Automatically discover reports/Success标准/漏洞

  • 输出tab/Reports/Manually配置报告 report-name-1 //成功标准/漏洞

Reports

(action-name/Outputs/Reports )

(可选)

一个部分,用于指定测试报告的配置。

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

report-name-1

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

(如果包含 Reports,则为必需)

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

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

Format

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

(如果包含 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 编辑器)。

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

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

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

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

Configuration

(action-name/Configuration)

(必需)可在其中定义操作的配置属性的部分。

对应的 UI:配置选项卡

Steps

(action-name/Configuration/Steps)

(必需)

在 GitHub M GitHub arketplac e 中指定操作详情页面上显示的操作代码。按照以下指南来添加代码:

  1. 将 GitHub 操作steps:部分中的代码粘贴到 CodeCatalyst 工作流程的Steps:部分。该代码以短划线(-)开头,与以下内容类似。

    GitHub 要粘贴的代码:

    - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: master GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  2. 查看您刚刚粘贴的代码,并在必要时对其进行修改,使其符合标准。 CodeCatalyst例如,对于前面的代码块,您可以删除中的代码red italics,然后添加粗体代码。

    CodeCatalyst 工作流程 yaml:

    Steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: mastermain GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  3. 对于 GitHub 操作中包含但该steps:部分中不存在的其他代码,请使用 CodeCatalyst等效代码将其添加到 CodeCatalyst 工作流程中。您可以查看,工作流 YAML 定义以深入了解如何将 GitHub 代码移植到 CodeCatalyst。详细的迁移步骤不在本指南的讨论范围内。

以下是如何在 “GitHub 操作” 操作中指定文件路径的示例:

Steps: - name: Lint Code Base uses: github/super-linter@v4 ... - run: cd /sources/WorkflowSource/MyFolder/ && cat file.txt - run: cd /artifacts/MyGitHubAction/MyArtifact/MyFolder/ && cat file2.txt

有关指定文件路径的更多信息,请参阅引用源存储库文件在构件中引用文件

对应的用户界面:“配置” 选项卡/ GitHub 操作 YAML