Skip to content

chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in workflows#324

Merged
FSM1 merged 2 commits into
mainfrom
chore/ci-parallelize-and-bump-kubo
Mar 23, 2026
Merged

chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in workflows#324
FSM1 merged 2 commits into
mainfrom
chore/ci-parallelize-and-bump-kubo

Conversation

@FSM1

@FSM1 FSM1 commented Mar 23, 2026

Copy link
Copy Markdown
Owner

Summary

Parallelizes independent CI jobs and bumps Kubo service containers across all workflows.

CI parallelization

Jobs that don't depend on each other's output no longer wait in sequence:

Job Before (needs) After (needs)
test changes, lint, typecheck changes, lint
sdk-e2e changes, lint, typecheck, test changes, lint
build changes, lint, typecheck, api-spec, test, sdk-e2e, migration-check changes, lint

Before: changes → typecheck → test → sdk-e2e → build (sequential chain)
After: changes → lint → {typecheck, test, sdk-e2e, build, api-spec, migration-check} (parallel fan-out)

Kubo version bump

Updates ipfs/kubo:v0.34.0ipfs/kubo:v0.40.0 in service containers for:

  • .github/workflows/ci.yml (api-spec, test, sdk-e2e jobs)
  • .github/workflows/e2e.yml
  • .github/workflows/load-test.yml

This matches the compose files updated in PR #321.

Test plan

  • Kubo v0.40.0 validated locally: 83/83 SDK E2E, 5/5 load test scenarios, 0 errors
  • CI pipeline runs on this PR and all jobs pass
  • Verify pipeline wall-clock time reduction vs previous runs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated CI/CD infrastructure with upgraded service dependencies to improve pipeline stability and performance.
    • Optimized build job dependencies to streamline continuous integration workflow execution.

Note: These are internal infrastructure updates with no direct impact on end-user functionality.

Parallelize independent CI jobs to reduce pipeline time:
- test: no longer waits for typecheck (builds packages itself)
- sdk-e2e: no longer waits for test (independent suite with own services)
- build: no longer waits for all checks (compilation check only)

Before: changes → typecheck → test → sdk-e2e → build (sequential)
After:  changes → lint → {test, sdk-e2e, build} (parallel)

Also bumps Kubo v0.34.0 → v0.40.0 in ci.yml, e2e.yml, and load-test.yml
service containers to match docker-compose (PR #321).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: d1f8e21dba94
@coderabbitai

coderabbitai Bot commented Mar 23, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@FSM1 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 15 minutes and 20 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b5017c59-6977-4b35-b830-090eae6a774a

📥 Commits

Reviewing files that changed from the base of the PR and between af53c43 and d28be8e.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Walkthrough

Three GitHub Actions workflows were updated to use IPFS Kubo v0.40.0 instead of v0.34.0. Additionally, the main CI workflow's job dependencies were restructured, with typecheck removed from test and sdk-e2e jobs, and build's dependencies reduced to only changes and lint.

Changes

Cohort / File(s) Summary
CI/CD Job Dependency Restructuring & IPFS Service Update
.github/workflows/ci.yml
Updated IPFS service image from v0.34.0 to v0.40.0; removed typecheck from test and sdk-e2e job dependencies; reduced build job's needs list to only [changes, lint].
IPFS Service Image Version Upgrade
.github/workflows/e2e.yml, .github/workflows/load-test.yml
Updated IPFS Kubo service container image from v0.34.0 to v0.40.0 across both workflows.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ 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 accurately captures both main changes: CI job parallelization and Kubo version bump to v0.40.0, matching the actual changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/ci-parallelize-and-bump-kubo

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates GitHub Actions workflows to speed up CI by removing unnecessary job dependencies (enabling parallel execution) and aligns CI service containers with the newer Kubo version used elsewhere in the repo.

Changes:

  • Parallelizes CI by reducing needs dependencies for test, sdk-e2e, and build jobs.
  • Bumps workflow IPFS service container image from ipfs/kubo:v0.34.0 to ipfs/kubo:v0.40.0 across CI/E2E/load-test workflows.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/ci.yml Updates Kubo image in services and adjusts job dependency graph to parallelize CI.
.github/workflows/e2e.yml Bumps Kubo service container image to v0.40.0 for web E2E workflow.
.github/workflows/load-test.yml Bumps Kubo service container image to v0.40.0 for load testing workflow.

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
@codecov

codecov Bot commented Mar 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 50.49%. Comparing base (e806cb9) to head (d28be8e).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #324      +/-   ##
==========================================
- Coverage   50.58%   50.49%   -0.10%     
==========================================
  Files         115      116       +1     
  Lines        9196     9888     +692     
  Branches      720      720              
==========================================
+ Hits         4652     4993     +341     
- Misses       4367     4718     +351     
  Partials      177      177              
Flag Coverage Δ
api 83.01% <ø> (ø)
api-client 83.01% <ø> (ø)
core 83.01% <ø> (ø)
crypto 83.01% <ø> (ø)
desktop 28.64% <ø> (+2.73%) ⬆️
sdk 83.01% <ø> (ø)
sdk-core 83.01% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 10 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Address PR review:
- Add lint to typecheck/api-spec/migration-check needs for fail-fast
- Remove redundant !failure() && !cancelled() conditions now that
  jobs only depend on changes + lint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: fbaacaeafccc

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@FSM1 FSM1 enabled auto-merge (squash) March 23, 2026 01:07
@FSM1 FSM1 merged commit 61e0428 into main Mar 23, 2026
28 checks passed
FSM1 added a commit that referenced this pull request Mar 23, 2026
…324)

* chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in all workflows

Parallelize independent CI jobs to reduce pipeline time:
- test: no longer waits for typecheck (builds packages itself)
- sdk-e2e: no longer waits for test (independent suite with own services)
- build: no longer waits for all checks (compilation check only)

Before: changes → typecheck → test → sdk-e2e → build (sequential)
After:  changes → lint → {test, sdk-e2e, build} (parallel)

Also bumps Kubo v0.34.0 → v0.40.0 in ci.yml, e2e.yml, and load-test.yml
service containers to match docker-compose (PR #321).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: d1f8e21dba94

* chore(ci): add lint to all job needs, simplify if conditions

Address PR review:
- Add lint to typecheck/api-spec/migration-check needs for fail-fast
- Remove redundant !failure() && !cancelled() conditions now that
  jobs only depend on changes + lint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: fbaacaeafccc

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
FSM1 added a commit that referenced this pull request Mar 23, 2026
* docs: start work on todo - Investigate someguy IPNS routing failure locally

Entire-Checkpoint: e2afefc2dcf0

* chore(docker): add someguy sidecar with corrected config for local IPNS testing

Previous staging deployment failed because: no libp2p port exposed (4004),
standard DHT mode instead of accelerated, and resource limits too tight.
This config fixes all three: exposes 4004 for DHT participation, uses
accelerated mode (default), and gives 2GB RAM / 1 CPU with 1GB libp2p memory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 1743c748c3e8

* chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in workflows (#324)

* chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in all workflows

Parallelize independent CI jobs to reduce pipeline time:
- test: no longer waits for typecheck (builds packages itself)
- sdk-e2e: no longer waits for test (independent suite with own services)
- build: no longer waits for all checks (compilation check only)

Before: changes → typecheck → test → sdk-e2e → build (sequential)
After:  changes → lint → {test, sdk-e2e, build} (parallel)

Also bumps Kubo v0.34.0 → v0.40.0 in ci.yml, e2e.yml, and load-test.yml
service containers to match docker-compose (PR #321).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: d1f8e21dba94

* chore(ci): add lint to all job needs, simplify if conditions

Address PR review:
- Add lint to typecheck/api-spec/migration-check needs for fail-fast
- Remove redundant !failure() && !cancelled() conditions now that
  jobs only depend on changes + lint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: fbaacaeafccc

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(docker): restore someguy sidecar with corrected config for staging

Root cause of the Phase 19 someguy failure was threefold:
1. No libp2p port (4004) exposed — DHT couldn't receive inbound connections
2. DHT mode set to 'standard' instead of 'accelerated' (default)
3. Resource limits too tight (0.5 CPU, 768MB RAM, 512MB libp2p memory)

Fix: expose port 4004 (TCP+UDP), use accelerated DHT mode, allocate
2GB RAM / 1 CPU / 1GB libp2p memory, and increase start period to 60s.

Verified locally: someguy IPNS GET resolves in ~0.5s, PUT in ~0.1s,
and all 83 SDK E2E tests pass with someguy as the routing backend.

Also restores someguy Prometheus metrics scraping in Alloy config
and updates deploy-staging workflow to use http://someguy:8190.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 58b1c8d9fd40

* docs: add learnings entry for vitest env var loading gotcha

Vitest does not auto-load .env files into process.env — env vars
must be passed explicitly on the command line or via dotenv setup.
This caused spurious 429 failures during someguy testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 8a5fc5b5e16a

* feat(api): add delegated routing fallback with Prometheus metrics

When the primary routing backend (someguy) fails after all retries,
the DelegatedRoutingClient now falls back to a configurable secondary
URL (DELEGATED_ROUTING_FALLBACK_URL). For staging, this is
delegated-ipfs.dev as a safety net.

New Prometheus metrics:
- cipherbox_delegated_routing_requests_total{operation,backend,outcome}
  tracks every routing request with primary/fallback backend label
- cipherbox_delegated_routing_fallbacks_total{operation}
  counts how often the primary fails and fallback is triggered

These enable Grafana alerting on frequent fallback usage, which would
indicate someguy health issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: a6f0bc4244a3

* fix(docker): use curl instead of wget for someguy healthcheck

The ghcr.io/ipfs/someguy image includes curl but not wget, so the
wget-based healthcheck would fail inside the container.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: ed489ad9746f

* fix(api): constrain backend param to 'primary' | 'fallback' union type

Prevents invalid Prometheus label values from being emitted.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: b7c371d3f753

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@FSM1 FSM1 deleted the chore/ci-parallelize-and-bump-kubo branch March 25, 2026 22:42
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.

2 participants