Skip to content

fix: ensure Node.js is available in copilot-setup-steps for GPU runners#2228

Merged
lpcox merged 2 commits intomainfrom
copilot/fix-node-installation-aw-gpu-runner-t4
Apr 27, 2026
Merged

fix: ensure Node.js is available in copilot-setup-steps for GPU runners#2228
lpcox merged 2 commits intomainfrom
copilot/fix-node-installation-aw-gpu-runner-t4

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 27, 2026

engine: copilot workflows fail on aw-gpu-runner-T4 with node: command not found because that runner image has no Node.js pre-installed and runtimes: node: frontmatter doesn't reliably provision it on GPU runner images.

Changes

  • .github/workflows/copilot-setup-steps.yml: Prepend actions/setup-node@v6.2.0 (Node.js 20, pinned SHA matching other workflows in this repo) as the first setup step — runs on the agent's actual runner before Copilot CLI is invoked, making Node.js available in PATH and consequently inside the AWF chroot (which bind-mounts ~/.nvm).
- name: Set up Node.js
  uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
  with:
    node-version: '20'

This is a runner-agnostic guard: on ubuntu-latest it's a no-op cost, on GPU runners it installs the missing runtime before gh aw or any Copilot engine step executes.

Copilot AI changed the title [WIP] Fix Node.js installation on aw-gpu-runner-T4 for workflows fix: ensure Node.js is available in copilot-setup-steps for GPU runners Apr 27, 2026
Copilot AI requested a review from lpcox April 27, 2026 00:57
@lpcox lpcox marked this pull request as ready for review April 27, 2026 00:58
@lpcox lpcox requested a review from Mossaka as a code owner April 27, 2026 00:58
Copilot AI review requested due to automatic review settings April 27, 2026 00:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to prevent engine: copilot workflows from failing on GPU runners that don’t have Node.js preinstalled by ensuring Node is set up before any Copilot CLI invocation.

Changes:

  • Add a pinned actions/setup-node step to provision Node.js 20 in the Copilot setup workflow.
  • Document in-workflow why Node is required (Copilot CLI dependency).
Show a summary per file
File Description
.github/workflows/copilot-setup-steps.yml Adds an early actions/setup-node step (pinned SHA) to ensure Node.js is present for Copilot CLI usage on runners lacking Node preinstall.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 1/1 changed files
  • Comments generated: 0

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results 🧪

✅ GitHub MCP: Retrieved last 2 merged PRs
✅ Playwright: GitHub page loaded, title contains "GitHub"
✅ File Writing: Test file created successfully
✅ Bash: File verified and readable

Overall: PASS

💥 [THE END] — Illustrated by Smoke Claude

@github-actions
Copy link
Copy Markdown
Contributor

🔥 Smoke Test: Copilot BYOK (Offline) Mode

Test Result
1. GitHub MCP connectivity
2. GitHub.com HTTP connectivity ⚠️ Pre-step data unavailable (template not expanded)
3. File write/read ⚠️ Pre-step data unavailable (template not expanded)
4. BYOK inference (api-proxy → api.githubcopilot.com)

Running in BYOK offline mode (COPILOT_OFFLINE=true) via api-proxy → api.githubcopilot.com.

PR: "fix: ensure Node.js is available in copilot-setup-steps for GPU runners" by @Copilot, assigned to @lpcox and @Copilot.

Overall: PASS (core BYOK path verified ✅)

🔑 BYOK report filed by Smoke Copilot BYOK

@github-actions

This comment has been minimized.

@github-actions
Copy link
Copy Markdown
Contributor

🏗️ Build Test Suite Results

Ecosystem Project Build/Install Tests Status
Bun elysia 1/1 passed ✅ PASS
Bun hono 1/1 passed ✅ PASS
C++ fmt N/A ✅ PASS
C++ json N/A ✅ PASS
Deno oak N/A 1/1 passed ✅ PASS
Deno std N/A 1/1 passed ✅ PASS
.NET hello-world N/A ✅ PASS
.NET json-parse N/A ✅ PASS
Go color passed ✅ PASS
Go env passed ✅ PASS
Go uuid passed ✅ PASS
Java gson 1/1 passed ✅ PASS
Java caffeine 1/1 passed ✅ PASS
Node.js clsx passed ✅ PASS
Node.js execa passed ✅ PASS
Node.js p-limit passed ✅ PASS
Rust fd 1/1 passed ✅ PASS
Rust zoxide 1/1 passed ✅ PASS

Overall: 8/8 ecosystems passed — ✅ PASS

Note: Java initially failed with LocalRepositoryNotAccessibleException (Maven's .m2/repository dir was root-owned). Fixed by using -Dmaven.repo.local=/tmp/gh-aw/agent/m2-repo.

Generated by Build Test Suite for issue #2228 · ● 527.1K ·

@github-actions
Copy link
Copy Markdown
Contributor

🤖 Smoke Test Results

  • ✅ GitHub MCP connectivity — PR list fetched successfully
  • ✅ GitHub.com connectivity — HTTP 200/301
  • ✅ File write/read — smoke-test-copilot-24971569187.txt verified

PR: fix: ensure Node.js is available in copilot-setup-steps for GPU runners
Author: @Copilot | Assignees: @lpcox, @Copilot

Overall: PASS

📰 BREAKING: Report filed by Smoke Copilot

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test: Services Connectivity — ❌ FAIL

Check Result
Redis PING ❌ Connection refused/timeout
PostgreSQL pg_isready ❌ No response
PostgreSQL SELECT 1 ❌ No response

host.docker.internal resolves to 172.17.0.1 but both ports 6379 and 5432 are unreachable. Service containers may not be running or network routing to the host is blocked.

🔌 Service connectivity validated by Smoke Services

@lpcox lpcox merged commit 836144a into main Apr 27, 2026
67 of 71 checks passed
@lpcox lpcox deleted the copilot/fix-node-installation-aw-gpu-runner-t4 branch April 27, 2026 01:14
@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test

  • PRs: "fix: AWF_ENABLE_HOST_ACCESS safety net sets '1' instead of 'true'"; "chore: recompile all agentic workflows"
  • GitHub review: ✅
  • GH CLI query: ✅
  • Playwright: ✅
  • Tavily search: ❌
  • File write/read: ✅
  • Discussion comment: ✅
  • AWF build: ✅
  • Overall: FAIL

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[awf] Runner Setup: node not found on aw-gpu-runner-T4 breaks copilot-engine workflows

3 participants