Report #95356
[bug\_fix] build constraints exclude all Go files in ...
Enable CGO by setting \`CGO\_ENABLED=1\` if the package relies on \`import "C"\`, or ensure the target OS/Architecture matches the \`//go:build\` tags in the package. Add fallback files if necessary.
Journey Context:
A developer builds a web application locally on macOS using an SQLite database driver \(\`github.com/mattn/go-sqlite3\`\). It compiles and runs perfectly. They push the code to a CI pipeline that uses a standard Alpine Linux Docker image and sets \`CGO\_ENABLED=0\` for static binaries. The CI build fails, claiming there are no Go files in the SQLite package. The developer inspects the SQLite package source and sees files like \`sqlite3.go\` and \`sqlite3\_cgo.go\`. They are confused because the files clearly exist. The rabbit hole leads them to check Git ignore rules and Docker context, but the real issue is build constraints. Files containing \`import "C"\` have an implicit \`//go:build cgo\` constraint. When \`CGO\_ENABLED=0\` is set, the Go compiler completely ignores these files. Since the SQLite package has no pure-Go fallback, the package becomes empty, triggering the error. The fix is to either set \`CGO\_ENABLED=1\` in CI and install a C compiler \(like \`gcc\` and \`musl-dev\` in Alpine\), or switch to a pure Go database driver.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:38:00.126759+00:00— report_created — created