本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用动作的 Lint 代码 GitHub
在本教程中,您将将 Super-Linter GitHub 操作app.js
。然后,您可以修复报告的问题,并再次运行工作流程以查看修复是否奏效。
先决条件
在开始之前,你需要:
-
一个连接的 CodeCatalyst 空间 AWS 账户。有关更多信息,请参阅 创建空间。
-
您的 CodeCatalyst 空间中有一个名为的空项目
codecatalyst-linter-project
。选择 “从头开始” 选项来创建此项目。有关更多信息,请参阅 在 Amazon 中创建一个空项目 CodeCatalyst。
步骤 1:创建源存储库
在此步骤中,您将在中创建源存储库 CodeCatalyst。您将使用此存储库存储本教程的示例应用程序源文件。app.js
有关源存储库的更多信息,请参阅创建源存储库。
创建源存储库
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
导航到您的项目,
codecatalyst-linter-project
。 -
在导航窗格中,选择代码,然后选择源存储库。
-
选择添加存储库,然后选择创建存储库。
-
在存储库名称中,输入:
codecatalyst-linter-source-repository
-
选择创建。
第 2 步:添加 app.js 文件
在此步骤中,您将向源存储库中添加一个app.js
文件。app.js
包含的函数代码有一些错误,linter 会发现这些错误。
添加 app.js 文件
-
在 CodeCatalyst 控制台中,选择您的项目
codecatalyst-linter-project
。 -
在导航窗格中,选择代码,然后选择源存储库。
-
从源存储库列表中,选择您的存储库
codecatalyst-linter-source-repository
。 -
在 “文件” 中,选择 “创建文件”。
-
在文本框中,输入以下代码:
// 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 }
-
在 “文件名” 中,输入
app.js
。保留其他默认选项。 -
选择 Commit (提交)。
现在,您已经创建了一个名为的文件
app.js
。
步骤 3:创建运行 Super-Linter 操作的工作流程
在此步骤中,您将创建一个在将代码推送到源存储库时运行 Super-Linter 操作的工作流程。该工作流程由您在YAML文件中定义的以下构件组成:
-
触发器-当您将更改推送到源存储库时,此触发器会自动启动工作流程运行。有关触发器的更多信息,请参阅启动工作流程使用触发器自动运行。
-
“GitHub 操作” 操作 — 触发后,“GitHub 操作” 操作会运行 Super-Linter 操作,该操作反过来会检查源存储库中的所有文件。如果 linter 发现问题,则工作流程操作将失败。
创建运行 Super-Linter 操作的工作流程
-
在 CodeCatalyst 控制台中,选择您的项目
codecatalyst-linter-project
。 -
在导航窗格中,选择 C I/CD,然后选择工作流程。
-
选择 “创建工作流程”。
-
对于源存储库,选择
codecatalyst-linter-source-repository
。 -
对于 “分支”,选择
main
。 -
选择创建。
删除YAML示例代码。
-
添加以下内容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 操作代码,如本过程的以下步骤所示。 -
前往 Market place GitHub 中的 Super-Linter 页面
。 -
在
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
-
(可选)选择 “验证”,确保YAML代码在提交之前有效。
-
选择 “提交”,输入提交消息,选择您的
codecatalyst-linter-source-repository
存储库,然后再次选择 “提交”。现在,您已经创建了一个工作流程。由于在工作流程顶部定义了触发器,因此工作流程运行会自动启动。
查看正在运行的工作流程
-
在导航窗格中,选择 C I/CD,然后选择工作流程。
-
选择您刚刚创建的工作流程:
codecatalyst-linter-workflow
. -
在工作流程图中,选择SuperLinterAction。
-
等待操作失败。之所以会出现这种故障,是因为 linter 在代码中发现了问题。
-
让 CodeCatalyst 控制台保持打开状态并转至第 4 步:修复 Super-Linter 发现的问题。
第 4 步:修复 Super-Linter 发现的问题
Super-Linter 应该在app.js
代码以及源代码库中包含README.md
的文件中发现了问题。
为了解决 linter 发现的问题
-
在 CodeCatalyst 控制台中,选择 “日志” 选项卡,然后选择 Lint Code Base。
将显示 Super-Linter 操作生成的日志。
-
在 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.
-
在源存储库
README.md
中修复app.js
和并提交您的更改。提示
要修复此问题
README.md
,请在代码块中添加markdown
,如下所示:```markdown Setup examples: ... ```
您的更改会自动启动另一个工作流程。等待工作流程完成。如果您修复了所有问题,则工作流程应该会成功。
清理
进行清理 CodeCatalyst 以从您的环境中删除本教程的痕迹。
要清理干净 CodeCatalyst
-
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
删除
codecatalyst-linter-source-repository
。 -
删除
codecatalyst-linter-workflow
。
在本教程中,你学习了如何将 Super-Linter GitHub 操作添加到 CodeCatalyst 工作流程中以整理一些代码。