Create a Makefile providing standardized targets for building, testing, linting, and running the application. This gives developers a consistent interface regardless of their shell environment and provides the command foundation that the CI pipeline (#5) will invoke.
Acceptance Criteria
make build compiles the Go binary to a configurable output path
make test runs all Go tests with the race detector enabled
make lint runs go vet (and optionally staticcheck or golangci-lint if available)
make run builds and runs the application locally
make clean removes build artifacts
Makefile uses variables for binary name, output directory, and Go flags
Default target (make with no args) runs build
Dependencies
#34 (Rename Go module) — the binary name should reflect the new project name
#35 (Restructure codebase) — the build paths (cmd/, etc.) must match the new layout
Scope Notes
Does NOT include Docker build targets (see #25, Phase 5)
Does NOT include deployment or release targets (see #26, Phase 5)
Does NOT replace the CI workflow file (see #5) — CI should call Makefile targets
Keep it simple — avoid overly complex Makefile patterns or auto-detection logic
## Parent
#2 (Epic: Phase 0 — Foundation)
## Summary
Create a Makefile providing standardized targets for building, testing, linting, and running the application. This gives developers a consistent interface regardless of their shell environment and provides the command foundation that the CI pipeline (#5) will invoke.
## Acceptance Criteria
- [x] make build compiles the Go binary to a configurable output path
- [x] make test runs all Go tests with the race detector enabled
- [x] make lint runs go vet (and optionally staticcheck or golangci-lint if available)
- [x] make run builds and runs the application locally
- [x] make clean removes build artifacts
- [x] Makefile uses variables for binary name, output directory, and Go flags
- [x] Default target (make with no args) runs build
## Dependencies
- #34 (Rename Go module) — the binary name should reflect the new project name
- #35 (Restructure codebase) — the build paths (cmd/, etc.) must match the new layout
## Scope Notes
- Does NOT include Docker build targets (see #25, Phase 5)
- Does NOT include deployment or release targets (see #26, Phase 5)
- Does NOT replace the CI workflow file (see #5) — CI should call Makefile targets
- Keep it simple — avoid overly complex Makefile patterns or auto-detection logic
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent
#2 (Epic: Phase 0 — Foundation)
Summary
Create a Makefile providing standardized targets for building, testing, linting, and running the application. This gives developers a consistent interface regardless of their shell environment and provides the command foundation that the CI pipeline (#5) will invoke.
Acceptance Criteria
Dependencies
Scope Notes