Build tags (build constraints) — условная компиляция. Файл включается в сборку только если тег совпадает.
Синтаксис (Go 1.17+):
//go:build linux && amd64
package mypackage
Старый синтаксис (до 1.17):
// +build linux,amd64
Примеры:
//go:build integration
// файл integration_test.go — только при go test -tags=integration
//go:build !windows
// всё кроме Windows
//go:build (linux || darwin) && amd64
// Linux или macOS, только amd64
Запуск:
go build -tags=integration ./...
go test -tags="integration e2e" ./...
Встроенные теги: linux, darwin, windows, amd64, arm64, cgo, race, go1.22 и т.д.
Типичные кейсы:
- Интеграционные тесты (
integration) - Platform-specific код (
linux/windows) - Feature flags при сборке