From 6a7b1ddbb6ca30bf676bf539801d3201d7838def Mon Sep 17 00:00:00 2001 From: Anson Chung Date: Fri, 23 May 2025 22:59:47 -0700 Subject: [PATCH] [CHORE] Update Makefile to include more targets --- .github/workflows/pr.yml | 4 +- Makefile | 66 +++++++++++++++---- compose.yaml | 6 +- .../docker}/poster.Dockerfile | 0 .../docker}/processor.Dockerfile | 0 .../docker}/reader.Dockerfile | 0 6 files changed, 57 insertions(+), 19 deletions(-) rename {docker => deployments/docker}/poster.Dockerfile (100%) rename {docker => deployments/docker}/processor.Dockerfile (100%) rename {docker => deployments/docker}/reader.Dockerfile (100%) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 1d16eaf..4c7cdf3 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -124,7 +124,7 @@ jobs: steps: - name: Approve - if: ${{ needs.build.result == 'success' && needs.integration-tests.result == 'success' }} + if: ${{ (needs.build.result == 'success' || needs.build.result == 'skipped') && (needs.integration-tests.result == 'success' || needs.integration-tests.result == 'skipped') }} uses: actions/github-script@v7 with: script: | @@ -137,7 +137,7 @@ jobs: process.exit(0) - name: Reject - if: ${{ needs.build.result != 'success' || needs.integration-tests.result != 'success' }} + if: ${{ needs.build.result == 'failure' || needs.integration-tests.result == 'failure' }} uses: actions/github-script@v7 with: script: | diff --git a/Makefile b/Makefile index 5fa6336..aed6f1e 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,57 @@ -.PHONY: help -help: - @echo "Available make targets:" - @grep '^\.PHONY:' Makefile | sed 's/\.PHONY: //g' | tr ' ' '\n' | sort | uniq | \ - while read target; do \ - echo " make $$target"; \ - done - -.PHONY: reader -reader: +# Colors for pretty output +YELLOW = \033[1;33m +GREEN = \033[1;32m +RED = \033[1;31m +BLUE = \033[1;34m +NC = \033[0m + +.PHONY: dev-reader +dev-reader: ## Run the flight-reader locally with .env variables. + @export $$(grep -v '^#' .env | xargs) && go run cmd/reader/main.go + +.PHONY: dev-processor +dev-processor: ## Run the flight-processor locally with .env variables. + @export $$(grep -v '^#' .env | xargs) && go run cmd/processor/main.go + +.PHONY: dev-poster +dev-poster: ## Run the flight-poster locally with .env variables. + @export $$(grep -v '^#' .env | xargs) && go run cmd/poster/main.go + +.PHONY: docker-reader +docker-reader: ## Build the flight-reader Docker image. docker build -t flight-reader -f docker/reader.Dockerfile . -.PHONY: processor -processor: +.PHONY: docker-processor +docker-processor: ## Build the flight-processor Docker image. docker build -t flight-processor -f docker/processor.Dockerfile . -.PHONY: poster -poster: +.PHONY: docker-poster +docker-poster: ## Build the flight-poster Docker image. docker build -t flight-poster -f docker/poster.Dockerfile . + +.PHONY: compose-up +compose-up: ## Start all services with build in foreground. + docker compose up --build -d + +.PHONY: compose-down +compose-down: ## Stop all services, remove volumes and orphans. + docker compose down --volumes --remove-orphans + +.PHONY: compose-logs +compose-logs: ## Show logs from all services. + docker compose logs -f + +.PHONY: lint +lint: ## Run linter. + @echo "$(YELLOW)Running linter...$(NC)" + @which golangci-lint > /dev/null || (echo "$(RED)golangci-lint not installed$(NC)" && exit 1) + golangci-lint run -c .golangci.yml + @echo "$(GREEN)Linting completed!$(NC)" + +.PHONY: help +help: ## Display this help screen. + @echo "$(BLUE)Available targets:$(NC)" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " $(YELLOW)%-20s$(NC) %s\n", $$1, $$2}' + +# Default target +.DEFAULT_GOAL := help diff --git a/compose.yaml b/compose.yaml index 71250f9..dde6b6d 100644 --- a/compose.yaml +++ b/compose.yaml @@ -45,7 +45,7 @@ services: - .env build: context: . - dockerfile: ./docker/reader.Dockerfile + dockerfile: ./deployments/docker/reader.Dockerfile ports: - 8080:8080 restart: on-failure:5 @@ -55,7 +55,7 @@ services: - .env build: context: . - dockerfile: ./docker/processor.Dockerfile + dockerfile: ./deployments/docker/processor.Dockerfile restart: on-failure:5 poster: @@ -63,5 +63,5 @@ services: - .env build: context: . - dockerfile: ./docker/poster.Dockerfile + dockerfile: ./deployments/docker/poster.Dockerfile restart: on-failure:5 diff --git a/docker/poster.Dockerfile b/deployments/docker/poster.Dockerfile similarity index 100% rename from docker/poster.Dockerfile rename to deployments/docker/poster.Dockerfile diff --git a/docker/processor.Dockerfile b/deployments/docker/processor.Dockerfile similarity index 100% rename from docker/processor.Dockerfile rename to deployments/docker/processor.Dockerfile diff --git a/docker/reader.Dockerfile b/deployments/docker/reader.Dockerfile similarity index 100% rename from docker/reader.Dockerfile rename to deployments/docker/reader.Dockerfile