Skip to content

Conversation

@jamesbhobbs
Copy link
Contributor

@jamesbhobbs jamesbhobbs commented Oct 10, 2025

Summary

This PR adds CI status badges and Codecov coverage badges to the README, and sets up Codecov integration in the GitHub Actions workflow.

Changes

CI Workflow (.github/workflows/ci.yml)

  • Added coverage report generation step using npm run test:cover:report
  • Added Codecov upload step that:
    • Only runs on successful test execution
    • Skips for fork PRs to avoid secret access issues
    • Uploads ./coverage/lcov.info to Codecov
    • Uses CODECOV_TOKEN secret for authentication

README

  • Added CI status badge linking to the workflow
  • Added Codecov coverage badge

Review Checklist

Critical items to verify:

  • Confirm CODECOV_TOKEN secret is configured in repository settings
  • Verify that npm run test:cover:report generates coverage at ./coverage/lcov.info (based on .nycrc config)
  • Test that CI workflow runs successfully with the new steps
  • Check that both badges display correctly and link to the right locations

Context: This is part of a larger effort to add CI and Codecov badges to four Deepnote repositories. The coverage collection was already in place via nyc, but coverage wasn't being uploaded to Codecov previously.


Link to Devin run: https://app.devin.ai/sessions/3468be17b20846dd9e367cd30fe62641
Requested by: @jamesbhobbs

Summary by CodeRabbit

  • Documentation
    • Added CI and code coverage badges at the top of the project overview so readers can quickly see build status and test coverage.
    • Preserved all existing descriptive content and images.
    • No changes to application behavior, APIs, or settings.

@devin-ai-integration
Copy link

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 10, 2025

📝 Walkthrough

Walkthrough

README.md was updated to prepend two badges (CI and codecov). Existing descriptive content and the project image reference were retained. No source code or behavior changes. No exported/public entity declarations were modified.

Suggested reviewers

  • andyjakubowski
  • saltenasl
  • Artmann

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly summarizes the key change of adding CI and Codecov badges to the README and configuring Codecov integration in the CI workflow. It directly reflects the modifications to both the documentation and the GitHub Actions workflow. It is clear, specific, and concise, enabling easy identification of the PR’s purpose.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Oct 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70%. Comparing base (0b41226) to head (46eeadc).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@          Coverage Diff          @@
##            main     #37   +/-   ##
=====================================
  Coverage     70%     70%           
=====================================
  Files        512     512           
  Lines      37506   37506           
  Branches    4811    4811           
=====================================
  Hits       26473   26473           
  Misses      9441    9441           
  Partials    1592    1592           
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0b41226 and e0a4a8b.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml (1 hunks)
  • README.md (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-10-10T12:20:18.695Z
Learnt from: jamesbhobbs
PR: deepnote/vscode-deepnote#35
File: .github/workflows/ci.yml:97-110
Timestamp: 2025-10-10T12:20:18.695Z
Learning: In the vscode-deepnote repository's CI workflow, the Codecov upload steps are intentionally configured to skip when tests fail (no `always()` guard), as they are specifically used for test flake reporting rather than general coverage/test result uploads on failures.

Applied to files:

  • .github/workflows/ci.yml
📚 Learning: 2025-10-09T11:21:57.494Z
Learnt from: CR
PR: deepnote/vscode-deepnote#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-09T11:21:57.494Z
Learning: Project is a VS Code extension for Jupyter notebooks

Applied to files:

  • README.md
📚 Learning: 2025-10-02T08:12:46.572Z
Learnt from: saltenasl
PR: deepnote/vscode-deepnote#16
File: src/notebooks/controllers/controllerRegistration.ts:360-367
Timestamp: 2025-10-02T08:12:46.572Z
Learning: The vscode-deepnote extension does not and will not support Jupyter notebooks; it is exclusively for Deepnote notebooks.

Applied to files:

  • README.md
📚 Learning: 2025-10-07T19:51:40.201Z
Learnt from: m1so
PR: deepnote/vscode-deepnote#25
File: src/kernels/deepnote/deepnoteServerStarter.node.ts:150-154
Timestamp: 2025-10-07T19:51:40.201Z
Learning: The deepnote-toolkit server is a separate Python package maintained in a different repository from the VS Code extension (vscode-deepnote). The VS Code extension launches the toolkit as a subprocess and communicates via environment variables and HTTP. The toolkit implementation cannot be verified from the extension codebase.

Applied to files:

  • README.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build & Test
🔇 Additional comments (1)
README.md (1)

3-5: Badges look correct; please verify rendering

Links/branch targets are right for CI and Codecov. Confirm they render after first successful upload.

Comment on lines 95 to 97
- name: Generate coverage report
run: npm run test:cover:report

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Confirm coverage script and report path

Ensure npm run test:cover:report exists, generates coverage/lcov.info, and doesn’t re-run tests.

Run to verify:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Check scripts in package.json"
rg -nP '"test"\s*:\s*".*"' -n package.json -C2 || true
rg -nP '"test:cover:report"\s*:\s*".*"' -n package.json -C2 || true

echo -e "\nCheck that test collects coverage (nyc/c8 wrapper)"
rg -nP '"test"\s*:\s*".*(nyc|c8).*"' package.json -n || echo "WARN: test may not collect coverage"

echo -e "\nCheck NYC config for lcov reporter"
rg -nP '"nyc"\s*:\s*\{(?s).*"reporter"\s*:\s*\[(?s).*"lcov"' -n package.json -C2 || true
fd -a '^\.nycrc(\.json)?$' | xargs -r -I{} sh -c 'echo "--- {} ---"; cat "{}"'

echo -e "\nCheck report command uses nyc report"
rg -nP '"test:cover:report"\s*:\s*".*(nyc).*report' -n package.json -C1 || echo "WARN: report script may not be nyc report"

echo -e "\nExpected output path: coverage/lcov.info (default). If custom, ensure ci.yml matches."

Length of output: 1381


Ensure CI coverage step emits lcov.info

  • Update package.json’s test:cover:report to include --reporter=lcov so coverage/lcov.info is generated.
  • Verify the workflow runs tests instrumented by nyc (e.g. nyc npm test) before the report step.

@devin-ai-integration devin-ai-integration bot force-pushed the devin/1760099953-add-ci-codecov-badges branch from e0a4a8b to 9ad6d13 Compare October 10, 2025 13:03
@jamesbhobbs jamesbhobbs marked this pull request as ready for review October 10, 2025 13:13
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9ad6d13 and 46eeadc.

📒 Files selected for processing (1)
  • README.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-10-09T11:21:57.494Z
Learnt from: CR
PR: deepnote/vscode-deepnote#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-09T11:21:57.494Z
Learning: Project is a VS Code extension for Jupyter notebooks

Applied to files:

  • README.md
📚 Learning: 2025-10-02T08:12:46.572Z
Learnt from: saltenasl
PR: deepnote/vscode-deepnote#16
File: src/notebooks/controllers/controllerRegistration.ts:360-367
Timestamp: 2025-10-02T08:12:46.572Z
Learning: The vscode-deepnote extension does not and will not support Jupyter notebooks; it is exclusively for Deepnote notebooks.

Applied to files:

  • README.md
📚 Learning: 2025-10-07T19:51:40.201Z
Learnt from: m1so
PR: deepnote/vscode-deepnote#25
File: src/kernels/deepnote/deepnoteServerStarter.node.ts:150-154
Timestamp: 2025-10-07T19:51:40.201Z
Learning: The deepnote-toolkit server is a separate Python package maintained in a different repository from the VS Code extension (vscode-deepnote). The VS Code extension launches the toolkit as a subprocess and communicates via environment variables and HTTP. The toolkit implementation cannot be verified from the extension codebase.

Applied to files:

  • README.md
🔇 Additional comments (1)
README.md (1)

4-4: Avoid embedding Codecov token in badge (public repo).

If the repo is public, drop the ?token=... to avoid exposing tokens and rely on GitHub App auth.
[ suggest_recommended_refactor ]
Apply:

-[![codecov](https://codecov.io/gh/deepnote/vscode-deepnote/graph/badge.svg?token=NH066XG7JC)](https://codecov.io/gh/deepnote/vscode-deepnote)
+[![codecov](https://codecov.io/gh/deepnote/vscode-deepnote/graph/badge.svg)](https://codecov.io/gh/deepnote/vscode-deepnote)

If this repo is private or the badge requires a token, confirm the shown token is not the same as the CODECOV_TOKEN upload secret.

@jamesbhobbs jamesbhobbs merged commit 4856d43 into main Oct 10, 2025
9 checks passed
@jamesbhobbs jamesbhobbs deleted the devin/1760099953-add-ci-codecov-badges branch October 10, 2025 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants