chore(ci): parallelize CI jobs and bump Kubo to v0.40.0 in workflows#324
Conversation
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
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThree 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 Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
needsdependencies fortest,sdk-e2e, andbuildjobs. - Bumps workflow IPFS service container image from
ipfs/kubo:v0.34.0toipfs/kubo:v0.40.0across 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. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ 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
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
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
…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>
* 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>
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:
testsdk-e2ebuildBefore:
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.0→ipfs/kubo:v0.40.0in service containers for:.github/workflows/ci.yml(api-spec, test, sdk-e2e jobs).github/workflows/e2e.yml.github/workflows/load-test.ymlThis matches the compose files updated in PR #321.
Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Note: These are internal infrastructure updates with no direct impact on end-user functionality.