Add Makefile with standard build, test, and development targets #38

Closed
opened 2026-03-04 00:02:33 +01:00 by libretech · 0 comments
Owner

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

  • 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
libretech added the phase-0taskinfrastructure labels 2026-03-04 00:02:33 +01:00
Sign in to join this conversation.