Conversation
…iles Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix CI failure in workflow run 36946
Prevent MCP server version bump test failures by replacing hardcoded versions with constants
Feb 20, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR reduces test fragility by removing hardcoded ghcr.io/github/github-mcp-server:<version> expectations and instead deriving the expected default image tag from constants.DefaultGitHubMCPServerVersion, preventing CI breakages when the default version is bumped.
Changes:
- Replaced hardcoded default GitHub MCP server image tags in multiple workflow tests with
constants.DefaultGitHubMCPServerVersion. - Added necessary imports (
constants, andfmtwhere used) to support dynamically composed expected strings. - Updated string expectations across TOML/JSON render paths to track the default version automatically.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/codex_engine_test.go | Updates expected rendered MCP config lines to use the default version constant (TOML + JSON expectations). |
| pkg/workflow/mcp_config_test.go | Replaces hardcoded image expectations with constants.DefaultGitHubMCPServerVersion via formatted strings; adds imports. |
| pkg/workflow/copilot_engine_test.go | Updates Copilot engine MCP config render expectations to use the default version constant. |
| pkg/workflow/copilot_github_mcp_test.go | Replaces hardcoded container image tag expectations with the default version constant; adds import. |
| pkg/workflow/github_remote_mode_test.go | Updates lockfile content assertions to look for the default version constant; adds import. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Feb 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI run #36946 failed because tests hardcoded
ghcr.io/github/github-mcp-server:v0.30.3while the compiler emittedv0.31.0after a version bump. The immediate breakage was already patched; this PR eliminates the fragility by replacing all remaining hardcoded default version strings withconstants.DefaultGitHubMCPServerVersion.Changes
codex_engine_test.go— 2 hardcodedv0.31.0→ dynamic constantmcp_config_test.go— 2 hardcodedv0.31.0→ dynamic constant; addedfmt/constantsimportscopilot_engine_test.go— 2 hardcodedv0.31.0→ dynamic constantcopilot_github_mcp_test.go— 3 hardcodedv0.31.0→ dynamic constant; addedconstantsimportgithub_remote_mode_test.go— 1 hardcodedv0.31.0→ dynamic constant; addedconstantsimportdocker_predownload_test.goalready used the constant pattern and did not require changes.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/graphql/usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw(http block)/usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -test.v=true /usr/bin/git git rev-�� --show-toplevel git ache/node/24.13.0/x64/bin/bash --get remote.origin.urrev-parse /usr/bin/git git(http block)/usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw git /usr/bin/git git -C /tmp/gh-aw-test-runs/20260220-131954-21710/test-3435214490 status ache/node/24.13.0/x64/bin/bash .github/workflowgit git /usr/bin/git git(http block)https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha DfIt/H91eAJ5JZRwir5-HDfIt -trimpath g_.a -p main -lang=go1.25 6870501/b385/importcfg --no�� pkg/mod/github.com/aymanbagabas/go-udiff@v0.3.1/lcs/common.go(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/sed -unreachable=falgit /tmp/go-build412rev-parse 0/x64/bin/node sed s/::��(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha /usr/bin/git git 0/x64/bin/node --show-toplevel git /usr/bin/git 0/x64/bin/node rev-�� --show-toplevel git /usr/bin/git --show-toplevel gh layTitle git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v3/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha 7690/001/stability-test.md stmain.go x_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linu-test.v=true /usr/bin/git se 0501623/b106/vetrev-parse 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet inPathSetup_GorootOrdering689887787/001/go/1.25.0/x64/bin/go se 0501623/b226/vetrev-parse ache/go/1.25.0/x--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git .cfg --show-toplevel infocmp /usr/bin/git git _out�� --show-toplevel PATH"; [ -n "$GOROOT" ] && expo ache/go/1.25.0/x64/pkg/tool/linux_amd64/link --show-toplevel git /usr/bin/git ache/go/1.25.0/x64/pkg/tool/linux_amd64/link(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha auto-triage-issues.md /tmp/go-build4120501623/b197/vet.cfg /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha vaScript1798241992/001/test-complex-frontmatter-with-tools.md /tmp/go-build4120501623/b209/vet.cfg Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha --get remote.origin.url /usr/bin/git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v5/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 1725257949/.github/workflows .cfg ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet credential.helpegit(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha sistency_GoAndJavaScript1798241992/001/test-empty-frontmatter.md--detach(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git k/_temp/runtime-git(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v8/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -c=4 -nolocalimports -importcfg /tmp/go-build3476870501/b394/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil_test.go(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha go1.25.0 -c=4 -nolocalimports -importcfg /tmp/go-build3476870501/b410/importcfg -pack /tmp/go-build3476870501/b410/_testmain.go(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha g_.a /tmp/go-build4120501623/b202/vet.cfg Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel sEDD2pLhLMDAgEAiXu/X6R5OoPF4X40d7UERB47/kI2eOA--test@example.com /usr/bin/git -bool -buildtags g_.a git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git -unreachable=falgit /tmp/go-build412rev-parse /opt/hostedtoolc--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha t0 m0s /opt/hostedtoolcache/node/24.13.0/x64/bin/node --show-toplevel git /usr/bin/git node js/f�� 6870501/b432/vet--show-toplevel git 0/x64/bin/node --show-toplevel git /usr/bin/git 0/x64/bin/node(http block)https://api.github.com/repos/actions/setup-node/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha blog-auditor.md /tmp/go-build4120501623/b199/vet.cfg /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha 6394608/b413/testutil.test git 6394608/b413/importcfg.link --show-toplevel NJWUm0yG4lqOY/ZDrev-parse /usr/bin/git 4qBSgoBRlrikz/avxLPGO5v5ZsAOsG8W--jq js/f�� ry=1 git e/git --show-toplevel git -d e/git(http block)https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts/usr/bin/gh gh run download 1 --dir test-logs/run-1 .cfg 64/pkg/tool/linu-buildmode=exe(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 git /usr/bin/git --show-toplevel 64/pkg/tool/linuconfig /usr/bin/git git estl�� --show-toplevel git 0/x64/bin/node --show-toplevel x_amd64/vet /usr/bin/git gh(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 .cfg 64/pkg/tool/linu-test.short=true(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 git x_amd64/vet --show-toplevel(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 .cfg d4ede148b816713f-lang=go1.25(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 git x_amd64/vet --show-toplevel(http block)https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts/usr/bin/gh gh run download 2 --dir test-logs/run-2(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 git x_amd64/link --show-toplevel(http block)https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts/usr/bin/gh gh run download 3 --dir test-logs/run-3(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 git /usr/bin/git --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git rev-�� --show-toplevel git x_amd64/link --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git x_amd64/link(http block)https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts/usr/bin/gh gh run download 4 --dir test-logs/run-4(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 git x_amd64/vet --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git x_amd64/vet rev-�� --show-toplevel git x_amd64/vet --show-toplevel ache/go/1.25.0/xconfig /usr/bin/git x_amd64/vet(http block)https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts/usr/bin/gh gh run download 5 --dir test-logs/run-5 .cfg 64/pkg/tool/linu-buildmode=exe(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 git 597aaf1b3751f08c87623f56bb584159-d --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git rev-�� --show-toplevel git 0/x64/bin/node --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git(http block)https://api.github.com/repos/github/gh-aw/actions/workflows/usr/bin/gh gh workflow list --json name,state,path(http block)/usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100(http block)/usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel 64/pkg/tool/linu-test.v=true /usr/bin/git(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git 0/x64/bin/node --show-toplevel bash /usr/bin/git git cjs --show-toplevel git 64/pkg/tool/linux_amd64/vet --show-toplevel /opt/hostedtoolccheckout /usr/bin/git 64/pkg/tool/linux_amd64/vet(http block)https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/archie.md 64/pkg/tool/linux_amd64/vet /usr/bin/git(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha 2695169635 git fc10e90c10f1ccea094873c0fd46735194a93f9ee784b75b-d --show-toplevel bash /usr/bin/git git cjs --show-toplevel git /usr/bin/git --show-toplevel gcc /usr/bin/git git(http block)https://api.github.com/repos/nonexistent/repo/actions/runs/12345/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion(http block)/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion /repos/actions/ggit --jq /usr/bin/git git rev-��(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo de/node/bin/git(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /usr/bin/git --show-toplevel x_amd64/vet /usr/bin/git git 1925�� --show-toplevel git ache/node/24.13.0/x64/bin/node --show-toplevel git /usr/bin/git git(http block)https://api.github.com/repos/owner/repo/contents/file.md/tmp/go-build3476870501/b380/cli.test /tmp/go-build3476870501/b380/cli.test -test.testlogfile=/tmp/go-build3476870501/b380/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true(http block)/tmp/go-build3086394608/b001/cli.test /tmp/go-build3086394608/b001/cli.test -test.testlogfile=/tmp/go-build3086394608/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/link /usr/bin/git /tmp/go-build347node -importcfg /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git gh-aw/actions/senode -extld=gcc /usr/bin/git git(http block)https://api.github.com/repos/test-owner/test-repo/actions/secrets/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name(http block)/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --show-toplevel gh /usr/bin/git /repos/nonexistenode --jq /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel 64/pkg/tool/linujs/fuzz_sanitize_output_harness.cjs /usr/bin/git git(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[CI Failure Doctor] CI Failure Investigation - Run 36946</issue_title>
<issue_description># 🏥 CI Failure Investigation - Run github/gh-aw#36946
Summary
CIworkflow run 36946 (commit6d037e1) fails after the changeEmit compilation error when agent file is imported with inlined-imports (#17140).testjob reports golden mismatches inTestCodexEngineRenderMCPConfigbecause the expected MCP server container version (ghcr.io/github/github-mcp-server:v0.30.3) no longer matches the compiler output (v0.31.0).Integration: Workflow Misc Part 2job aborts duringgo test ./pkg/workflowwith exit code 1 while the failure report states “No individual test marked as failed,” so the actual panic/build issue is not visible in the truncated log.Failure Details
6d037e1301dbe895fe190991180b94825f84d732Root Cause Analysis
TestCodexEngineRenderMCPConfig(and related golden checks) still assert that the MCP server container isghcr.io/github/github-mcp-server:v0.30.3, but the renderer now outputsv0.31.0, so the golden diff atcodex_engine_test.go:373fails on two lines where the container string is emitted.go test ./pkg/workflowexits with code 1 afterTestNoWorkflowRunRepoSafetyForPushTriggerand friends, but the failure report says “No individual test marked as failed,” indicating a panic or build-time error occurred before a test could record its failure; the integration artifact (test-result-integration-Workflow Misc Part 2) is needed to identify the specific panic or compilation failure.Failed Jobs and Errors
test:TestCodexEngineRenderMCPConfigexpectedcontainer = "ghcr.io/github/github-mcp-server:v0.30.3"(line 13) and the JSON line 23 expected the same, but the actual output isv0.31.0.Integration: Workflow Misc Part 2:go testforgithub.com/github/gh-aw/pkg/workflowterminates withFAIL github.com/github/gh-aw/pkg/workflow 4.781sand a subsequent summary saying “No individual test marked as failed,” so the underlying panic/build error must be extracted from the artifact before the cause can be fixed.Investigation Findings
go test ./pkg/workflow -run TestCodexEngineRenderMCPConfig -count=1locally is blocked because the Go toolchain download forgo1.25.0(requested by the repo) hitsproxy.golang.organd returns403 Forbiddeninside this sandbox.test-result-integration-Workflow Misc Part 2.zipartifact is necessary to capture the panic or compile error.Recommended Actions
codex_engine_test.go(and any other references) to match the new default MCP server containerghcr.io/github/github-mcp-server:v0.31.0and rerungo test ./pkg/workflow ./pkg/workflow/....Integration: Workflow Misc Part 2(or inspect thetest-result-integration-Workflow Misc Part 2.zipartifact) to capture the panic/build failure that causesgo testto exit with code 1 despite reporting “No individual test marked as failed,” then fix that panic/compile error.Prevention Strategies
go testfailures.AI Team Self-Improvement
ghcr.io/github/github-mcp-serverreferences) so AI agents do not rely on stale values.Historical Context
CI Failure Doctorissue for this particular signature; no earlier investigations reported the same container version mismatch or the mysterious package-level failure forpkg/workflow.✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.