- Added new job analysis result repository and database migration system - Expanded job creation to support Glassdoor as a new provider alongside LinkedIn - Added CV analysis service launch configuration in VS Code - Updated Makefile with new commands for scraper service and migrations - Improved environment loading in cron analyzer to support local development - Added error handling for unsupported job providers - Integrated job analysis results
80 lines
2.1 KiB
Makefile
80 lines
2.1 KiB
Makefile
# Jobs Scraper Monorepo Makefile
|
|
|
|
# Variables
|
|
APP_NAME=jobs-scraper
|
|
API_DIR=./api
|
|
SCRAPER_DIR=./services/scraper
|
|
DOCS_DIR=./docs
|
|
BIN_DIR=./bin
|
|
MAIN_FILE=$(API_DIR)/main.go
|
|
SCRAPER_MAIN_FILE=$(SCRAPER_DIR)/main.go
|
|
CRON_DIR=./cmd/cron-analyzer
|
|
CRON_MAIN_FILE=$(CRON_DIR)/main.go
|
|
MIGRATE_DIR=./cmd/migrate
|
|
MIGRATE_MAIN_FILE=$(MIGRATE_DIR)/main.go
|
|
|
|
# Default target
|
|
.DEFAULT_GOAL := help
|
|
|
|
# RabbitMQ server
|
|
rabbitmq-server:
|
|
@echo "Starting RabbitMQ server..."
|
|
docker run --rm -p 5672:5672 -p 15672:15672 rabbitmq:3-management
|
|
|
|
.PHONY: run
|
|
run: ## Run the API application
|
|
@echo "Running $(APP_NAME) API..."
|
|
@go run $(MAIN_FILE)
|
|
|
|
.PHONY: scraper
|
|
scraper: ## Run the scraper service
|
|
@echo "Running scraper service..."
|
|
@cd $(SCRAPER_DIR) && go run main.go
|
|
|
|
.PHONY: build-scraper
|
|
build-scraper: ## Build the scraper service
|
|
@echo "Building scraper service..."
|
|
@cd $(SCRAPER_DIR) && go build -o scraper main.go
|
|
|
|
.PHONY: cron
|
|
cron: ## Run the job analysis cron service
|
|
@echo "Starting Job Analysis Cron Service..."
|
|
@go run $(CRON_MAIN_FILE)
|
|
|
|
.PHONY: migrate
|
|
migrate: ## Run database migrations
|
|
@echo "Running database migrations..."
|
|
@go run $(MIGRATE_MAIN_FILE)
|
|
|
|
.PHONY: clean
|
|
clean: ## Clean build artifacts
|
|
@echo "Cleaning build artifacts..."
|
|
@rm -rf $(BIN_DIR)
|
|
@rm -f $(SCRAPER_DIR)/scraper
|
|
@echo "Clean complete"
|
|
|
|
.PHONY: help
|
|
help: ## Show this help message
|
|
@echo "Jobs Scraper Monorepo - Available commands:"
|
|
@echo ""
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
# Swagger documentation
|
|
.PHONY: swagger
|
|
swagger: ## Generate Swagger documentation
|
|
@echo "Generating Swagger documentation..."
|
|
@go run github.com/swaggo/swag/cmd/swag@latest init -g $(MAIN_FILE) -o $(DOCS_DIR)
|
|
@echo "Swagger documentation generated in $(DOCS_DIR)/"
|
|
|
|
# Docker operations (if needed in the future)
|
|
.PHONY: docker-build
|
|
docker-build: ## Build Docker image
|
|
@echo "Building Docker image..."
|
|
@docker build -t $(APP_NAME) .
|
|
@echo "Docker image built: $(APP_NAME)"
|
|
|
|
.PHONY: docker-run
|
|
docker-run: ## Run Docker container
|
|
@echo "Running Docker container..."
|
|
@docker run -p 8080:8080 $(APP_NAME)
|
|
|