“GitHub 动作” 动作 YAML 定义 - Amazon CodeCatalyst

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

“GitHub 动作” 动作 YAML 定义

以下是 “GitHub操作” 操作的 YAML 定义。

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

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

注意

接下来的大多数 YAML 属性在可视化编辑器中都有相应的 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

动作名称

(必需)

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

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

Identifier

操作名称/Identifier

标识操作。除非要更改版本,否则请勿更改此属性。有关更多信息,请参阅 指定操作的主版本、次要版本或补丁版本

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

对应的用户界面:工作流程图/ 操作名称/ aws/ @v1 标签 github-actions-runner

DependsOn

操作名称/DependsOn

(可选)

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

有关 “依赖” 功能的更多信息,请参阅。将操作配置为依赖于其他操作

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

Compute

操作名称/Compute

(可选)

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

对应的用户界面:

Fleet

操作名称 /Compute/ Fleet

(可选)

指定将运行您的工作流程或工作流程操作的计算机或机群。对于按需队列,当操作开始时,工作流程会配置所需的资源,操作完成后计算机就会被销毁。按需车队的示例:Linux.x86-64.LargeLinux.x86-64.XLarge。有关按需队列的更多信息,请参阅按需车队房产

使用已配置的队列,您可以配置一组专用计算机来运行您的工作流程操作。这些计算机处于闲置状态,可以立即处理操作。有关已配置队列的更多信息,请参阅。已配置的舰队属性

如果省略,Fleet则默认为Linux.x86-64.Large

相应的 UI:“配置” 选项卡/ “计算舰队”- 可选

Timeout

操作名称/Timeout

(可选)

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

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

Environment

操作名称/Environment

(可选)

指定要用于操作的 CodeCatalyst 环境。

有关环境的更多信息,请参见部署到环境中的 VPC AWS 账户 和带有 CodeCatalyst环境的 VPC创建环境

对应的用户界面:配置选项卡/环境/账户/角色

Name

操作名称 /Environment/ Name

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

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

对应的用户界面:配置选项卡/'环境/账户/角色'/环境

Connections

操作名称 /Environment/ Connections

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

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

有关账户关联的更多信息,请参阅允许在已连接的情况下访问 AWS 资源 AWS 账户。有关如何将账户关联与您的环境关联的信息,请参阅创建环境

对应的用户界面:

Name

操作名称 /Environment/Connections/ Name

(可选)

指定账户连接的名称。

对应的用户界面:配置选项卡/'环境/账户/角色'/账户连接AWS

Role

操作名称 /Environment/Connections/ Role

(可选)

指定此操作用于访问和操作 Amazon S3 和 Amazon ECR 等 AWS 服务的 IAM 角色的名称。确保将此角色添加到您的账户关联中。要向账户连接添加 IAM 角色,请参阅向账户连接添加 IAM 角色

注意

只要角色具有足够的权限,您就可以在此处指定该CodeCatalystWorkflowDevelopmentRole-spaceName角色的名称。有关该角色的更多信息,请参阅 为您的账户和空间创建CodeCatalystWorkflowDevelopmentRole-spaceName角色。了解该CodeCatalystWorkflowDevelopmentRole-spaceName角色具有非常广泛的权限,这可能会带来安全风险。我们建议您仅在教程和安全性较低的场景中使用此角色。

警告

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

对应的用户界面:配置选项卡/'环境/账户/角色'/角色

Inputs

操作名称/Inputs

(可选)

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

注意

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

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

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

Sources

操作名称 /Inputs/ Sources

(可选)

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

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

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

相应的 UI:“输入” 选项卡/ “来源”- 可选

Artifacts - input

操作名称 /Inputs/ Artifacts

(可选)

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

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

有关构件的更多信息(包括示例),请参阅使用构件在工作流程中的操作之间共享数据

注意

如果 Artifacts -可选下拉列表不可用(可视化编辑器),或者在验证 YAML(YAML 编辑器)时出现错误,则可能是因为该操作仅支持一个输入。在这种情况下,请尝试移除源输入。

相应的 UI:“输入” 选项卡/ 工件- 可选

Variables - input

操作名称 /Inputs/ Variables

(可选)

指定一个名称/值对序列,这些对定义了要提供给操作的输入变量。变量名称仅限于字母数字字符(a-z、A-Z、0-9)、连字符 (-) 和下划线 (_)。不允许使用空格。不能使用引号在变量名中启用特殊字符和空格。

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

相应的 UI:“输入” 选项卡/ “变量”- 可选

Outputs

操作名称/Outputs

(可选)

定义操作在工作流程运行期间输出的数据。

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

Artifacts - output

操作名称 /Outputs/ Artifacts

(可选)

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

有关构件的更多信息(包括示例),请参阅使用构件在工作流程中的操作之间共享数据

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

Name

操作名称 /Outputs/Artifacts/ Name

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

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

有关构件的更多信息(包括示例),请参阅使用构件在工作流程中的操作之间共享数据

对应的用户界面:输出选项卡/构件/添加构件/构建构件名称

Files

操作名称 /Outputs/Artifacts/ Files

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

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

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

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

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

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

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

注意

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

有关构件的更多信息(包括示例),请参阅使用构件在工作流程中的操作之间共享数据

注意

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

相应的用户界面:输出选项卡/构件/添加工件/构建生成的文件

Variables - output

操作名称 /Outputs/ Variables

(可选)

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

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

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

变量名-1

操作名称/Outputs/Variables变量名称- 1)

(可选)

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

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

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

AutoDiscoverReports

操作名称 /Outputs/ AutoDiscoverReports

(可选)

定义自动发现功能的配置。

启用自动发现后,会 CodeCatalyst 搜索操作中Inputs传递的所有文件以及操作本身生成的所有文件,以查找测试、代码覆盖率和软件组合分析 (SCA) 报告。对于找到的每个报告,将其 CodeCatalyst 转换为 CodeCatalyst 报告。CodeCatalyst 报告是完全集成到 CodeCatalyst 服务中的报告,可以通过 CodeCatalyst 控制台查看和操作。

注意

默认情况下,自动发现功能会检查所有文件。您可以使用IncludePathsExcludePaths属性限制要检查哪些文件。

对应的用户界面:

Enabled

操作名称 /Outputs/AutoDiscoverReports/ Enabled

(可选)

启用或禁用自动发现功能。

有效值为 truefalse

如果省略,Enabled则默认为true

相应的 UI:“输出” 选项卡/报告/自动发现报告

ReportNamePrefix

操作名称 /Outputs/AutoDiscoverReports/ ReportNamePrefix

(如果包含并启用AutoDiscoverReports,则为必填项)

为其找到的所有报告指定前缀,以便命名其关联 CodeCatalyst 的报告。 CodeCatalyst 例如,如果您将前缀指定为AutoDiscovered,并 CodeCatalyst自动发现两个测试报告TestSuiteTwo.xmlTestSuiteOne.xml则关联 CodeCatalyst 的报告将命名为 AutoDiscoveredTestSuiteOne and。AutoDiscoveredTestSuiteTwo

相应的 UI:“输出” 选项卡/报告/自动发现报告/报告前缀

IncludePaths

操作名称 /Outputs/AutoDiscoverReports/ IncludePaths

Or

操作名称/Outputs/Reports/报告名称 -1/)IncludePaths

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

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

注意

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

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

注意

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

对应的用户界面:

  • 输出选项卡/报告/自动发现报告/'包含/排除路径'/包含路径

  • 输出选项卡/报告/手动配置报告/报告名称-1 /'包含/排除路径'/包含路径

ExcludePaths

操作名称 /Outputs/AutoDiscoverReports/ ExcludePaths

Or

操作名称/Outputs/Reports/报告名称 -1/)ExcludePaths

(可选)

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

注意

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

对应的用户界面:

  • 输出选项卡/报告/自动发现报告/'包含/排除路径'/排除路径

  • 输出选项卡/报告/手动配置报告/报告名称-1 /'包含/排除路径'/排除路径

SuccessCriteria

操作名称 /Outputs/AutoDiscoverReports/ SuccessCriteria

Or

操作名称/Outputs/Reports/报告名称 -1/)SuccessCriteria

(可选)

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

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

对应的用户界面:

  • “输出” 选项卡/报告/自动发现报告/成功标准

  • 输出选项卡/报告/手动配置报告/报告名称-1 /成功标准

PassRate

操作名称 /Outputs/AutoDiscoverReports/SuccessCriteria/ PassRate

Or

操作名称/Outputs/Reports/报告/SuccessCriteria/PassRate名称-1

(可选)

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

对应的用户界面:

  • “输出” 选项卡/报告/自动发现报告/成功标准/通过率

  • 输出选项卡/报告/手动配置报告/报告名称-1 /成功标准/通过率

LineCoverage

操作名称 /Outputs/AutoDiscoverReports/SuccessCriteria/ LineCoverage

Or

操作名称/Outputs/Reports/报告/SuccessCriteria/LineCoverage名称-1

(可选)

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

对应的用户界面:

  • “输出” 选项卡/报告/自动发现报告/成功标准/行覆盖率

  • 输出选项卡/报告/手动配置报告/报告名称-1 /成功标准/行覆盖率

BranchCoverage

操作名称 /Outputs/AutoDiscoverReports/SuccessCriteria/ BranchCoverage

Or

操作名称/Outputs/Reports/报告/SuccessCriteria/BranchCoverage名称-1

(可选)

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

对应的用户界面:

  • 输出选项卡/报告/自动发现报告/成功标准/分支覆盖率

  • 输出选项卡/报告/手动配置报告/报告名称-1 /成功标准/分支覆盖范围

Vulnerabilities

操作名称 /Outputs/AutoDiscoverReports/SuccessCriteria/ Vulnerabilities

Or

操作名称/Outputs/Reports/报告/SuccessCriteria/Vulnerabilities名称-1

(可选)

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

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

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

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

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

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

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

对应的用户界面:

  • “输出” 选项卡/报告/自动发现报告/成功标准/漏洞

  • 输出选项卡/报告/手动配置报告/报告名称-1 /成功标准/漏洞

Reports

操作名称 /Outputs/ Reports

(可选)

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

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

报告名称 1

操作名称/Outputs/Reports/报告名称-1

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

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

相应的 UI:“输出” 选项卡/报告/手动配置报告/报告名称

Format

操作名称/Outputs/Reports/报告名称 -1/)Format

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

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

  • 对于测试报告:

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

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

    • 对于 nUnit XML,请指定 nUni t(可视化编辑器)或NUNITXML(YAML 编辑器)。

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

    • 对于 Visual Studio TRX,指定 Visual Studio TRX(可视化编辑器)或VISUALSTUDIOTRX(YAML 编辑器)。

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

  • 有关代码覆盖率报告:

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

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

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

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

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

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

相应的 UI:“输出” 选项卡/报告/手动配置报告/添加报告/报告名称-1 /报告类型和报告格式

Configuration

操作名称/Configuration

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

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

Steps

操作名称 /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例如,在前面的代码块中,您可以删除红色斜体的代码,然后添加体代码。

    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