GeezerVison is showing github.com — Go extractor does not support build-mode: none, preventing overlay/incremental analysis on PRs · Issue #3796 · github/codeql-action
Go extractor does not support build-mode: none, preventing overlay/incremental analysis on PRs #3796
Description
Problem
The Go extractor (CodeQL CLI 2.25.1) does not support build-mode: none:
A fatal error occurred: Go does not support the none build mode.
Please try using one of the following build modes instead: autobuild, manual.
This means Go cannot benefit from overlay/incremental analysis on pull requests. JavaScript gets this automatically — in our monorepo we see Overlay filter removed 4311 out of 4312 files from extraction on JS PRs, reducing a full extraction to just the changed files. Go still does a full extraction of every package on every PR (~2.5 min for autobuild + ~1.5 min for analysis in a large monorepo).
Current workaround
We use legacy env var hacks to skip the actual go build:
env:
CODEQL_EXTRACTOR_GO_FAST_PACKAGE_INFO: y
CODEQL_EXTRACTOR_GO_BUILD_COMMAND: false
This avoids compilation but still runs full type extraction for every Go package on every PR.
Expected behavior
Setting build-mode: none should work for Go, enabling overlay/incremental analysis on PRs (as it already does for JavaScript/TypeScript). The Go extractor already has a buildless/standalone extraction path (DEPRECATED: Use --build-mode none instead appears in the extractor options for the buildless flag), so the extraction capability exists — it just isn't wired up to accept build-mode: none.
Additional context
- We also noticed that Go's extractor does not declare
trap.cache.* options in codeql-extractor.yml, so TRAP caching is also unavailable for Go.
- The v3→v4 action upgrade enabled overlay for JS automatically, but there's no path to get the same benefit for Go.
- codeql-action v4.35.1, CodeQL CLI 2.25.1
Activity
jketema commented on Apr 1, 2026
Hi @lizthegrey,
Some observations:
- Go indeed does not support
build-mode: none. Its other build modes are already close in behavior to build-mode:none, which is why we have not implemented build-mode:none for Go.
- Overlay analysis has for now only been released for a subset of the languages supported by CodeQL. So, even if Go would support
build-mode:none, overlay analysis would not work at the moment.
- Trap caching has only been implemented for JS and C/C++, not for any other language.
That being said, we are currently working on adding overlay support for both Go and C/C++, and this should become available in the not too distant future.
Metadata
Metadata
Development
No branches or pull requestsIssue actions