.PHONY: build test lint generate dev migrate seed export clean BINARY := oikos GO ?= go build: $(GO) build -o $(BINARY) -tags timetzdata ./cmd/oikos test: $(GO) test -race -cover ./... # Integration tests against the compose Postgres (starts it if needed) test-db: docker compose up -d postgres @sleep 3 OIKOS_TEST_DATABASE_URL="postgres://oikos:$${OIKOS_DB_PASSWORD:-oikos_dev}@localhost:5432/oikos?sslmode=disable" \ $(GO) test -race -count=1 ./internal/db/ ./internal/httpapi/ lint: $(GO) vet ./... @command -v golangci-lint >/dev/null 2>&1 && golangci-lint run || echo "golangci-lint not installed, skipping" generate: $(GO) run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@v2.4.1 \ -config api/codegen.yaml api/openapi.yaml migrate: $(GO) run ./cmd/oikos migrate seed: $(GO) run ./cmd/oikos seed export: $(GO) run ./cmd/oikos export dev: docker compose --profile dev up -d clean: rm -f $(BINARY) $(GO) clean -testcache tidy: $(GO) mod tidy