教程:使用动作的 Lint 代码 GitHub - Amazon CodeCatalyst

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

教程:使用动作的 Lint 代码 GitHub

在本教程中,您将将 Super-Linter GitHub 操作添加到亚马逊 CodeCatalyst 工作流程中。Super-Linter 操作检查代码,查找代码存在错误、格式问题和可疑结构的区域,然后将结果输出到控制台)。 CodeCatalyst将 linter 添加到工作流程后,您可以运行工作流程来整理示例 Node.js 应用程序 () app.js。然后,您可以修复报告的问题,并再次运行工作流程以查看修复是否奏效。

先决条件

在开始之前,你需要:

  • 一个连接的 CodeCatalyst 空间 AWS 账户。有关更多信息,请参阅 创建空间

  • 您的 CodeCatalyst 空间中有一个名为的空项目codecatalyst-linter-project。选择 “从头开始” 选项来创建此项目。

    有关更多信息,请参阅 在 Amazon 中创建一个空项目 CodeCatalyst

步骤 1:创建源存储库

在此步骤中,您将在中创建源存储库 CodeCatalyst。您将使用此存储库存储本教程的示例应用程序源文件。app.js

有关源存储库的更多信息,请参阅创建源存储库

创建源存储库
  1. 打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/

  2. 导航到您的项目,codecatalyst-linter-project

  3. 在导航窗格中,选择代码,然后选择源存储库

  4. 选择添加存储库,然后选择创建存储库

  5. 存储库名称中,输入:

    codecatalyst-linter-source-repository
  6. 选择创建

第 2 步:添加 app.js 文件

在此步骤中,您将向源存储库中添加一个app.js文件。app.js包含的函数代码有一些错误,linter 会发现这些错误。

添加 app.js 文件
  1. 在 CodeCatalyst 控制台中,选择您的项目codecatalyst-linter-project

  2. 在导航窗格中,选择代码,然后选择源存储库

  3. 从源存储库列表中,选择您的存储库codecatalyst-linter-source-repository

  4. 在 “文件” 中,选择 “创建文件”。

  5. 在文本框中,输入以下代码:

    // const axios = require('axios') // const url = 'http://checkip.amazonaws.com/'; let response; /** * * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format * @param {Object} event - API Gateway Lambda Proxy Input Format * * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html * @param {Object} context * * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html * @returns {Object} object - API Gateway Lambda Proxy Output Format * */ exports.lambdaHandler = async (event, context) => { try { // const ret = await axios(url); response = { statusCode: 200, 'body': JSON.stringify({ message: 'hello world' // location: ret.data.trim() }) } } catch (err) { console.log(err) return err } return response }
  6. 在 “文件名” 中,输入app.js。保留其他默认选项。

  7. 选择 Commit (提交)

    现在,您已经创建了一个名为的文件app.js

步骤 3:创建运行 Super-Linter 操作的工作流程

在此步骤中,您将创建一个在将代码推送到源存储库时运行 Super-Linter 操作的工作流程。该工作流程由您在YAML文件中定义的以下构件组成:

  • 触发器-当您将更改推送到源存储库时,此触发器会自动启动工作流程运行。有关触发器的更多信息,请参阅启动工作流程使用触发器自动运行

  • “GitHub 操作” 操作 — 触发后,“GitHub 操作” 操作会运行 Super-Linter 操作,该操作反过来会检查源存储库中的所有文件。如果 linter 发现问题,则工作流程操作将失败。

创建运行 Super-Linter 操作的工作流程
  1. 在 CodeCatalyst 控制台中,选择您的项目codecatalyst-linter-project

  2. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  3. 选择 “创建工作流程”

  4. 对于源存储库,选择codecatalyst-linter-source-repository

  5. 对于 “分支”,选择main

  6. 选择创建

  7. 删除YAML示例代码。

  8. 添加以下内容YAML:

    Name: codecatalyst-linter-workflow SchemaVersion: "1.0" Triggers: - Type: PUSH Branches: - main Actions: SuperLinterAction: Identifier: aws/github-actions-runner@v1 Configuration: Steps: github-action-code

    在前面的代码中,替换 github-action-code 使用 Super-Linter 操作代码,如本过程的以下步骤所示。

  9. 前往 Market place GitHub 中的 Super-Linter 页面

  10. steps:(小写)下,找到代码并将其粘贴到Steps:(大写)下 CodeCatalyst的工作流程中。

    调整 GitHub 操作代码以符合 CodeCatalyst 标准,如以下代码所示。

    现在,您的 CodeCatalyst 工作流程如下所示:

    Name: codecatalyst-linter-workflow SchemaVersion: "1.0" Triggers: - Type: PUSH Branches: - main Actions: SuperLinterAction: Identifier: aws/github-actions-runner@v1 Configuration: Steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: "true" DEFAULT_BRANCH: main
  11. (可选)选择 “验证”,确保YAML代码在提交之前有效。

  12. 选择 “提交”,输入提交消息,选择您的codecatalyst-linter-source-repository存储库,然后再次选择 “提交”。

    现在,您已经创建了一个工作流程。由于在工作流程顶部定义了触发器,因此工作流程运行会自动启动。

查看正在运行的工作流程
  1. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  2. 选择您刚刚创建的工作流程:codecatalyst-linter-workflow.

  3. 在工作流程图中,选择SuperLinterAction

  4. 等待操作失败。之所以会出现这种故障,是因为 linter 在代码中发现了问题。

  5. 让 CodeCatalyst 控制台保持打开状态并转至第 4 步:修复 Super-Linter 发现的问题

第 4 步:修复 Super-Linter 发现的问题

Super-Linter 应该在app.js代码以及源代码库中包含README.md的文件中发现了问题。

为了解决 linter 发现的问题
  1. 在 CodeCatalyst 控制台中,选择 “日志” 选项卡,然后选择 Lint Code Base

    将显示 Super-Linter 操作生成的日志。

  2. 在 Super-Linter 日志中,向下滚动到第 90 行左右,在那里你可以找到问题的起点。它们看起来类似于以下内容:

    /github/workspace/hello-world/app.js:3:13: Extra semicolon. /github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed. /github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found. /github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4. /github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
  3. 在源存储库README.md中修复app.js和并提交您的更改。

    提示

    要修复此问题README.md,请在代码块中添加markdown,如下所示:

    ```markdown Setup examples: ... ```

    您的更改会自动启动另一个工作流程。等待工作流程完成。如果您修复了所有问题,则工作流程应该会成功。

清理

进行清理 CodeCatalyst 以从您的环境中删除本教程的痕迹。

要清理干净 CodeCatalyst
  1. 打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/

  2. 删除codecatalyst-linter-source-repository

  3. 删除codecatalyst-linter-workflow

在本教程中,你学习了如何将 Super-Linter GitHub 操作添加到 CodeCatalyst 工作流程中以整理一些代码。