codecov-action

codecov-action

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

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

CodecovGitHub Actions代码覆盖率持续集成开源项目Github

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 状态

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多