Skip to content

Improve devcontainer startup times - #123

Merged
rapids-bot[bot] merged 3 commits into
rapidsai:mainfrom
trxcllnt:fea/build-devcontainers
May 22, 2026
Merged

Improve devcontainer startup times#123
rapids-bot[bot] merged 3 commits into
rapidsai:mainfrom
trxcllnt:fea/build-devcontainers

Conversation

@trxcllnt

Copy link
Copy Markdown
Contributor

This PR builds and publishes devcontainers to ghcr.io and uses the new images to improve CI and local devcontainer startup times.

In rapidsai/devcontainers, devcontainer startup times went from 3m28s to 34s.

Contributes to rapidsai/build-planning#280.

@trxcllnt trxcllnt added the improvement Improves an existing functionality label May 20, 2026
@trxcllnt
trxcllnt requested review from a team as code owners May 20, 2026 01:13
@trxcllnt trxcllnt added the non-breaking Introduces a non-breaking change label May 20, 2026
@trxcllnt
trxcllnt requested a review from msarahan May 20, 2026 01:13
@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Optimized Docker build performance for development containers by enabling build cache reuse.
    • Added automated publishing of development container images for CUDA 12.9 and 13.2 versions.

Walkthrough

This PR updates devcontainer configurations to use Docker build caching and adds a GitHub Actions workflow job to automatically build and publish devcontainer images for CUDA 12.9 and 13.2 variants.

Changes

DevContainer Build Cache and CI Integration

Layer / File(s) Summary
DevContainer build cache sources
.devcontainer/cuda12.9-conda/devcontainer.json, .devcontainer/cuda12.9-pip/devcontainer.json, .devcontainer/cuda13.2-conda/devcontainer.json, .devcontainer/cuda13.2-pip/devcontainer.json
Each devcontainer configuration adds a build.cacheFrom array referencing a pre-built registry image (ghcr.io/rapidsai/nvforest/devcontainer:26.08-cuda*-*) to enable Docker layer caching across local and CI builds.
CI workflow devcontainer publishing job
.github/workflows/build.yaml
A new devcontainers job is appended to the build workflow, calling the shared reusable workflow build-devcontainers.yaml with push: true and targeting CUDA versions 12.9 and 13.2; the job inherits secrets and requests packages: write permissions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • rapidsai/nvforest#82: Introduced devcontainer configurations for CUDA variants; this PR adds build caching and CI automation to those configurations.

Suggested reviewers

  • bdice
  • jameslamb
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main objective of the changeset, which is to improve devcontainer startup times through building and publishing cached images.
Description check ✅ Passed The description is directly related to the changeset, explaining that devcontainers are being built and published to ghcr.io, and citing measurable improvements in startup times.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/build.yaml:
- Around line 189-197: The devcontainers job (named "devcontainers" with push:
true) must be gated on successful wheel publish jobs; add a needs: key to the
devcontainers job listing the wheel build/publish job IDs (e.g., the job names
that build and publish wheels such as build-wheels or publish-wheels) so the
devcontainers job only runs after those wheel jobs succeed, keeping the existing
permissions and with: push: true unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d56a11a1-762d-41df-bf71-f968cea6c461

📥 Commits

Reviewing files that changed from the base of the PR and between 8bb23ee and 09b493b.

📒 Files selected for processing (5)
  • .devcontainer/cuda12.9-conda/devcontainer.json
  • .devcontainer/cuda12.9-pip/devcontainer.json
  • .devcontainer/cuda13.2-conda/devcontainer.json
  • .devcontainer/cuda13.2-pip/devcontainer.json
  • .github/workflows/build.yaml

Comment thread .github/workflows/build.yaml
@jameslamb
jameslamb removed the request for review from msarahan May 20, 2026 18:20
@trxcllnt

Copy link
Copy Markdown
Contributor Author

/merge

@rapids-bot
rapids-bot Bot merged commit a9defae into rapidsai:main May 22, 2026
66 checks passed
@trxcllnt
trxcllnt deleted the fea/build-devcontainers branch May 22, 2026 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants