Project Icon

codecov-action

GitHub Actions集成的代码覆盖率自动化上传工具

codecov-action是GitHub Actions的代码覆盖率上传工具,支持多操作系统和灵活配置。它可自动将覆盖率报告上传至Codecov平台,提供文件选择、标记设置和环境变量标记等功能。该工具支持OIDC验证,增强安全性。通过简单配置,可实现代码覆盖率的自动化监控和报告,提高开发效率。

Codecov GitHub Action

GitHub Marketplace FOSSA Status Workflow for Codecov Action

轻松从GitHub Actions上传覆盖率报告到Codecov

v4 版本发布

Codecov GitHub Action的v4版本将使用Codecov CLI来上传覆盖率报告到Codecov。

重大变更

  • 不支持无token上传。但是,从分支向上游公共仓库提交的PR将支持无token上传(例如,开源项目的贡献者不需要上游仓库的Codecov token)。详情请参阅我们的文档
  • 移除了Action的多个参数

Dependabot

  • 对于使用Dependabot的仓库,用户需要确保它能访问Codecov token,以便Dependabot的PR能上传覆盖率。为此,请将您的CODECOV_TOKEN添加为Dependabot Secret。更多信息,请参见"为Dependabot配置私有注册表访问权限"

v3及以下版本将无法使用CLI功能(如全局上传token、ATS)。

使用方法

要将Codecov集成到您的Actions流程中,请在workflow.yml文件中将此仓库的名称和标签号(推荐使用@v4)指定为一个step

此Action还需要您提供来自codecov.io上传token(提示:为避免暴露您的token,请将其存储secret)。

目前,此Action可以识别linux、macos和windows运行器。但对于其他架构,Action可能会识别错误。可以指定的操作系统有:

  • alpine
  • alpine-arm64
  • linux
  • linux-arm64
  • macos
  • windows

在您的.github/workflows/workflow.yml文件中:

steps:
- uses: actions/checkout@main
- uses: codecov/codecov-action@v4
  with:
    fail_ci_if_error: true # 可选(默认为false)
    files: ./coverage1.xml,./coverage2.xml # 可选
    flags: unittests # 可选
    name: codecov-umbrella # 可选
    token: ${{ secrets.CODECOV_TOKEN }} # 必需
    verbose: true # 可选(默认为false)

Codecov token也可以通过环境变量传递:

steps:
- uses: actions/checkout@main
- uses: codecov/codecov-action@v4
  with:
    fail_ci_if_error: true # 可选(默认为false)
    files: ./coverage1.xml,./coverage2.xml # 可选
    flags: unittests # 可选
    name: codecov-umbrella # 可选
    verbose: true # 可选(默认为false)
  env:
    CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

[!注意] 这假设您已经在Settings > Secrets中将Codecov token设置为CODECOV_TOKEN。如果没有,您可以在codecov.io上为特定仓库获取上传token。请记住,secrets对仓库的分支是不可用的。

使用OIDC

对于启用了OpenID Connect(OIDC)的用户,不需要Codecov token。您可以使用use_oidc参数来使用OIDC,如下所示:

- uses: codecov/codecov-action@v4
  with:
    use_oidc: true

任何提供的token都将被忽略,因为Codecov将默认使用OIDC token进行验证。

参数

Codecov的Action支持用户输入。这些输入及其描述和使用场景列在下表中:

输入描述是否必需
token仓库 Codecov 令牌。用于授权报告上传*必需
codecov_yml_path指定 Codecov YML 的路径可选
commit_parent覆盖以指定父提交 SHA可选
directory搜索覆盖率报告的目录可选
disable_search禁用覆盖率文件搜索。当使用 --file 选项指定要上传的文件时,这很有用可选
disable_file_fixes禁用文件修复,以忽略覆盖率中的常见行(如空行或空括号)可选
dry_run不向 Codecov 上传文件可选
env_vars用于标记上传的环境变量(例如 PYTHON | OS,PYTHON)可选
exclude从搜索中排除的文件夹可选
fail_ci_if_error指定如果 Codecov 在上传过程中遇到错误,CI 构建是否应失败可选
file要上传的覆盖率文件路径可选
files要上传的文件的逗号分隔列表可选
flags标记上传以分组覆盖率指标(例如 unittests | integration | ui,chrome)可选
handle_no_reports_found当未找到覆盖率报告时不抛出异常可选
job_code作业代码可选
name用户定义的上传名称。在 Codecov UI 中可见可选
os覆盖假定的操作系统。选项有 linux | macos | windows | .可选
override_branch指定分支名称可选
override_build指定构建号可选
override_build_url正在运行的构建的 URL可选
override_commit指定提交 SHA可选
override_pr指定拉取请求号可选
plugin要运行的插件。选项:xcode, gcov, pycoverage。默认行为是全部运行可选
plugins上传期间使用的插件的逗号分隔列表可选
report_code报告的代码。如不确定,请勿包含可选
root_dir用于指定 .git 根目录的位置以识别项目根目录可选
slug手动指定 slug(企业用途)可选
url指定上传的基本 url(企业用途)可选
use_legacy_upload_endpoint使用旧的上传端点可选
use_oidc使用 OpenID Connect 进行验证而不是令牌。这将忽略任何提供的令牌。详情请参阅 GitHub 文档可选
verbose指定 Codecov 输出是否应该详细可选
version指定应使用的 Codecov CLI 版本。默认为 latest可选
working-directory执行 codecov.sh 的目录可选

使用 Codecov Action 的 workflow.yml 示例

name: Codecov 示例工作流
on: [push]
jobs:
  run:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    env:
      OS: ${{ matrix.os }}
      PYTHON: '3.10'
    steps:
    - uses: actions/checkout@main
    - name: 设置 Python
      uses: actions/setup-python@main
      with:
        python-version: 3.10
    - name: 生成覆盖率报告
      run: |
        pip install pytest
        pip install pytest-cov
        pytest --cov=./ --cov-report=xml
    - name: 上传覆盖率到 Codecov
      uses: codecov/codecov-action@v4
      with:
        directory: ./coverage/reports/
        env_vars: OS,PYTHON
        fail_ci_if_error: true
        files: ./coverage1.xml,./coverage2.xml,!./cache
        flags: unittests
        name: codecov-umbrella
        token: ${{ secrets.CODECOV_TOKEN }}
        verbose: true

贡献

欢迎贡献!请查看贡献指南

许可证

本项目中的代码根据 MIT 许可证 发布。

FOSSA 状态

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号