将 AWS CodeBuild 与 Codecov 结合使用 - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 AWS CodeBuild 与 Codecov 结合使用

Codecov 是一种用于测量代码的测试覆盖率的工具。Codecov 可标识您代码中的哪些方法和语句未经测试。可通过结果确定在何处编写测试以提高代码质量。Codecov 适用于 CodeBuild 支持的三个源存储库: GitHub、GitHub Enterprise Server 和 Bitbucket。如果您的构建项目使用 GitHub Enterprise Server,则必须使用 Codecov Enterprise。

当您运行与 Codecov 集成的 CodeBuild 项目的构建时,会将用于分析存储库中的代码的 Codecov 报告上传到 Codecov。构建日志包含指向报告的链接。此示例介绍如何将 Python 和 Java 构建项目与 Codecov 集成。有关 Codecov 支持的语言的列表,请参阅 Codecov 网站上的 Codecov 支持的语言

将 Codecov 集成到构建项目中

将 Codecov 与构建项目集成

  1. 转到 https://codecov.io/signup 并注册 GitHub 或 Bitbucket 源存储库。如果您使用 GitHub Enterprise,请参阅 Codecov 网站上的 Codecov Enterprise

  2. 在 Codecov 中,添加要覆盖的存储库。

  3. 在显示令牌信息时,选择 Copy (复制)

  4. 将复制的令牌作为名为 CODECOV_TOKEN 的环境变量添加到构建项目中。有关更多信息,请参阅更改构建项目的设置(控制台)

  5. 在存储库中创建一个名为 my_script.sh 的文本文件。在文件中输入以下内容:

    #/bin/bash bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
  6. 根据构建项目的使用情况,选择 PythonJava 选项卡,然后按照以下步骤操作。

    Java
    1. 将以下 JaCoCo 插件添加到存储库中的 pom.xml

      <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.2</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
    2. 在构建规范文件中输入以下命令。有关更多信息,请参阅构建规范语法

      build: - mvn test -f pom.xml -fn postbuild: - echo 'Connect to CodeCov' - bash my_script.sh
    Python

    在构建规范文件中输入以下命令。有关更多信息,请参阅构建规范语法

    build: - pip install coverage - coverage run -m unittest discover postbuild: - echo 'Connect to CodeCov' - bash my_script.sh
  7. 运行构建项目的构建。指向为项目生成的 Codecov 报告的链接将显示在构建日志中。使用链接查看 Codecov 报告。有关更多信息,请参阅 在 AWS CodeBuild 中运行构建使用 AWS CloudTrail 记录 AWS CodeBuild API 调用。构建日志中的 Codecov 信息与以下内容类似:

    [Container] 2020/03/09 16:31:04 Running command bash my_script.sh _____ _ / ____| | | | | ___ __| | ___ ___ _____ __ | | / _ \ / _` |/ _ \/ __/ _ \ \ / / | |___| (_) | (_| | __/ (_| (_) \ V / \_____\___/ \__,_|\___|\___\___/ \_/ Bash-20200303-bc4d7e6 ·[0;90m==>·[0m AWS Codebuild detected. ... The full list of Codecov log entries has been omitted for brevity ... · ·[0;32m->·[0m View reports at ·[0;36mhttps://codecov.io/github/user/test_py/commit/commit-id·[0m [Container] 2020/03/09 16:31:07 Phase complete: POST_BUILD State: SUCCEEDED

    报告与以下内容类似: