Add runtime mount manager for automatic container mount configuration#11357
Add runtime mount manager for automatic container mount configuration#11357
Conversation
- Created runtime_mounts.go with GetRuntimeMounts and ContributeRuntimeMounts functions - Added runtime-specific mount definitions for all supported runtimes (node, python, go, etc.) - Integrated runtime mounts into compiler_yaml_main_job.go - Added comprehensive tests for runtime mount generation - Added integration tests verifying mounts in Copilot engine AWF commands Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Use require.NotEmpty instead of require.Greater for slice length checks - Use assert.Len instead of assert.Equal for length comparisons Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot The mounted should matching 1 to 1 the host file path |
|
@copilot update smoke agentic workflows to test running "npm ls" to test that "npm" os available in the container. The runtime manager should mount folders for node.js |
Confirmed - all mounts use 1-to-1 host-to-container path mapping. For example, |
- Added "Runtime Mount Testing" step to all smoke test workflows - Tests that npm is available in container by running `npm ls` - Validates that runtime manager properly mounts Node.js folders - Updated smoke-copilot.md, smoke-claude.md, and smoke-codex.md - Recompiled all smoke workflow .lock.yml files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added "Runtime Mount Testing" step to all smoke workflows (smoke-copilot, smoke-claude, smoke-codex). The test executes |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
Smoke Test: PASS ✅Last 2 merged PRs:
Test Results:
|
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test: Claude - PASS ✅Last 2 Merged PRs:
Test Results: ✅ GitHub MCP | ✅ GH CLI | ✅ Serena | ✅ Playwright | ✅ Tavily | ✅ Runtime | ✅ File I/O | ✅ Bash
|
Investigated the error. The issue was that Fixed by changing to direct npm command: This uses the same commands the Makefile would run but executes them directly using npm (which is available via the runtime mounts). Updated all smoke workflows. Commit: d875b67 |
|
@copilot update smoke agentic workflow to try to run golang tools (using the "make build" makefile target) instead of npm (remove actions/setup-node as well). The runtime manager should generate the mounts for the go tooling. |
- Removed Node.js runtime configuration and setup-node step - Removed npm/docs/JS test steps (steps 5-8) - Added Go build test: `go build -o /tmp/gh-aw-test ./cmd/gh-aw` - Added Go test: `go test ./pkg/console -v -run TestFormatSuccess` - Tests validate runtime manager mounts Go toolcache, GOPATH, and build cache - Go runtime already configured (version 1.25) with Serena - Updated all three smoke workflows: copilot, claude, and codex - Recompiled all workflow .lock.yml files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Replaced Node.js tests with Go build and test validation:
These tests validate that the runtime manager properly mounted Go folders:
Go runtime already configured (version 1.25) via Serena. Updated all smoke workflows. Commit: da688d5 |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
✅ GitHub MCP (last 2 merged PRs): [code-scanning-fix] Fix go/unsafe-quoting: Escape single quotes in JSON data; Replace manual quote escaping with %q format specifier for YAML encoding
|
Smoke Test Results - Run §21268384181
Status: ❌ FAIL - Go runtime not available cc
|
|
Smoke Test Results - Claude ✅ GitHub MCP - PRs #11382, #11392 Status: FAIL
|
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
@copilot add step to smoke copilot agentic workflow that shows the path to the go binaries |
- Added "Runtime Mount Testing - Show Go Paths" step - Displays Go binary location with: which go && go version && go env GOROOT GOPATH GOCACHE - Helps verify Go is accessible and shows mount points - Provides diagnostic information for validating runtime mounts - Updated smoke-copilot.md and recompiled .lock.yml file Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added "Runtime Mount Testing - Show Go Paths" step to smoke-copilot workflow. The step runs |
|
👋 Hi, I'm an automated AI code review bot. I ran some checks on this PR and found 2 points that might be worth attention (could be false positives, please use your judgment):
If you find these suggestions disruptive, you can reply "stop" , and I'll automatically skip this repository in the future. |
Summary
Successfully implemented the runtime manager to maintain a list of well-known folders that need to be mounted on containers.
Latest Changes (this commit)
Added diagnostic step to smoke-copilot workflow to show Go binary paths:
New Step 5: "Runtime Mount Testing - Show Go Paths"
which go && go version && go env GOROOT GOPATH GOCACHE/opt/hostedtoolcache/go)/home/runner/go)/home/runner/.cache/go-build)Purpose:
This step provides visibility into the Go runtime configuration before running build and test commands, making it easier to diagnose mount-related issues.
Updated smoke-copilot.md and recompiled .lock.yml file.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
Changeset
Changeset
Changeset
Changeset
Changeset
Note: Pre-commit validation (
make agent-finish) failed in this execution environment due to a permission error creating the Go module cache:mkdir /home/runner/go: permission denied. The changeset file was still added and pushed to the PR branch.Changeset