AWS CodeBuild 搭配 Codecov 使用 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 整合到建置專案中。

整合 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. 在 Buildspec 檔案中輸入下列命令。如需詳細資訊,請參閱Buildspec 語法

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

    在 Buildspec 檔案中輸入下列命令。如需詳細資訊,請參閱Buildspec 語法

    build: - pip install coverage - coverage run -m unittest discover postbuild: - echo 'Connect to CodeCov' - bash my_script.sh
  7. 執行建置專案的建置。針對專案產生的 Codecov 報告連結會顯示在建置日誌中。使用連結檢視 Codecov 報告。如需詳細資訊,請參閱手動執行 AWS CodeBuild 建置使用 記錄 AWS CodeBuild API呼叫 AWS CloudTrail。建置日誌中的 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

    報告看起來類似下列內容:

    範例報告。