65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 AWS CodeBuild 进行代码质量检查

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2024 年 1 月 13 日

CPOL

3分钟阅读

viewsIcon

5582

关于如何使用 AWS CodeBuild 轻松执行代码质量检查的分步指南。

目录

引言

为了运行质量检查,我们需要以某种方式运行存储库中的代码。我们不能直接在存储库中运行代码,需要一些服务来自动读取代码并运行它。 AWS CodeBuild 是我们的选择。 AWS CodeBuild 旨在构建给定的代码并创建构建工件。但是,在本手册中,我们不想深入研究整个工件构建过程的细节,但我们将使用 *AWS CodeBuild* 作为辅助服务,在每次创建或更新拉取请求时启动测试。

由于我们在这里使用 GitHub 作为质量检查的入口点,因此应该提到的是
GitHub 为我们提供了自己的工具来执行质量检查,甚至构建整个管道。
但是,在本分步指南中,我们将结合 GitHub 探讨 *AWS CodeBuild* 的用法,以扩展我们的 CI/CD 体验。

必备组件

您将需要:

  • GitHub 账户
  • AWS 账户
  • 强烈希望获得实践经验 😀

代码概述

我们将使用以下存储库:aws-code-build-quality-learning

您需要创建/使用您自己的存储库,下载或 fork aws-code-build-quality-learning 到您的个人 GitHub 账户。

在存储库中,有一个带有非常基本示例功能的简单应用程序。
并且还有一个 AWS CodeBuild 指南,其中包含要运行的命令 - buildspec 文件 quality-check.yml。

让我们看一下 *quality-check.yml*。

仅仅是让 AWS CodeBuild 自动执行质量检查的说明。 如果您想了解更多关于 buildspec 配置的信息,请参阅 CodeBuild 的构建规范参考

AWS CodeBuild 配置

要创建构建项目,我们需要按照以下步骤操作

打开 AWS CodeBuild 并点击 创建项目

https://us-east-2.console.aws.amazon.com/codesuite/codebuild/start?region=us-east-2

项目名称: "aws-code-build-quality-learning" (可以是您自己的名称,如果您愿意)

Graphical user interface, text, application, emailDescription automatically generated

通过 OAuth 进行连接是一种简单的方法,但是由于未知原因,它可能无法工作。在这种情况下,您必须转到您的 GitHub 存储库设置并颁发个人访问令牌。

Graphical user interface, text, application, emailDescription automatically generated

然后,选择存储库。您的 GitHub 帐户的所有现有存储库都将列在下拉列表中。

Graphical user interface, text, applicationDescription automatically generated

下一步非常重要。我们需要选中 报告构建状态 才能在我们的拉取请求中看到构建状态。否则,质量检查过程将不会在 GitHub 端的 PR 中显示。

Graphical user interface, text, applicationDescription automatically generated

我们还必须指定何时触发质量检查构建。

Graphical user interface, text, application, emailDescription automatically generated

必须指定以下设置。这里不需要额外的解释。

现在我们需要引用我们已经了解过的 buildspec 文件。

buildspecs/quality-check.yml 是我们的源代码中 quality-check.yml 的路径。

Graphical user interface, text, applicationDescription automatically generated

构建项目已创建,但到目前为止还没有构建。

Graphical user interface, text, applicationDescription automatically generated

现在是时候创建一个拉取请求了。

创建拉取请求以触发质量检查

创建新的功能分支

git checkout -b feature-branch (如果分支已存在,则没有 -b 选项)

单行注释可以帮助我们查看质量检查是否在 PR 更新时触发。

将 "//feature test change 1" 注释添加到 app.js

const express = require('express');
const app = express();
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.get('/api/v1/info', (req, res) => {
  res.send({ application: 'sample-app', version: '1' });
});
app.post('/api/v1/getback', (req, res) => {
  res.send({ ...req.body });
});
app.listen(80, () => console.log(`Listening on: 80`));
//feature test change 1

提交并推送

git add .

git commit -m 'add a change to trigger quality check'

git push origin feature-branch

创建 PR

Graphical user interface, applicationDescription automatically generated

引用

问题在于,我们可以在质量检查仍在运行时合并拉取请求。发生这种情况是因为我们尚未设置分支保护。分支保护仅在企业 GitHub 订阅中可用。为了举例说明,我们将其保持原样。

AWS CodeBuild 控制台。等待构建完成...

⚠ 请注意,CodeBuild 作为免费套餐的一部分,每月为我们提供 100 分钟 的免费执行时间。虽然我们的脚本的执行时间少于 1 分钟,但万一发生挂起并且执行时间增加,值得小心。在这种情况下,建议手动停止该过程。

结果是 “所有检查都已通过”

结论

我们找到了另一种构建和检查代码质量的方法。我们了解到,我们可以将 GitHub 与 AWS CodeBuild 结合使用来实现此目的。这开启了使用亚马逊其余服务部署我们的代码并无限扩展我们的应用程序的可能性。

历史

  • 2024 年 1 月 13 日:初始版本
© . All rights reserved.