|
| 1 | +SHELL := /bin/bash |
| 2 | + |
1 | 3 | VENV_BIN ?= python3 -m venv |
2 | 4 | VENV_DIR ?= .venv |
3 | 5 | PIP_CMD ?= pip3 |
@@ -33,28 +35,44 @@ $(VENV_ACTIVATE): |
33 | 35 |
|
34 | 36 | venv: $(VENV_ACTIVATE) ## Create a new (empty) virtual environment |
35 | 37 |
|
36 | | -start: |
37 | | - $(LOCAL_ENV) docker compose up --build --detach --wait |
| 38 | +check: ## Check if all required prerequisites are available |
| 39 | + @command -v docker > /dev/null 2>&1 || { echo "Docker is not installed."; exit 1; } |
| 40 | + @command -v localstack > /dev/null 2>&1 || { echo "LocalStack is not installed."; exit 1; } |
| 41 | + @command -v python > /dev/null 2>&1 || { echo "Python is not installed."; exit 1; } |
| 42 | + @command -v cdk > /dev/null 2>&1 || { echo "AWS CDK is not installed."; exit 1; } |
| 43 | + @command -v cdklocal > /dev/null 2>&1 || { echo "CDK Local is not installed."; exit 1; } |
| 44 | + @echo "All required prerequisites are available." |
| 45 | + |
| 46 | +start: ## Start localstack |
| 47 | + $(LOCAL_ENV) LOCALSTACK_AUTH_TOKEN=$(LOCALSTACK_AUTH_TOKEN) docker compose up --build --detach --wait |
38 | 48 |
|
39 | | -install: venv |
| 49 | +install: venv ## Install dependencies |
40 | 50 | $(VENV_RUN); $(PIP_CMD) install -r requirements.txt |
41 | 51 |
|
42 | | -deploy: |
| 52 | +deploy: ## Deploy the stack on LocalStack |
43 | 53 | $(VENV_RUN); $(LOCAL_ENV) cdklocal bootstrap --output ./cdk.local.out |
44 | 54 | $(VENV_RUN); $(LOCAL_ENV) cdklocal deploy --require-approval never --output ./cdk.local.out |
45 | 55 |
|
46 | | -deploy-aws: |
| 56 | +deploy-aws: ## Deploy the stack on AWS |
47 | 57 | $(VENV_RUN); $(CLOUD_ENV) cdk bootstrap |
48 | 58 | $(VENV_RUN); $(CLOUD_ENV) cdk deploy --require-approval never |
49 | 59 |
|
50 | | -destroy: |
| 60 | +stop: ## Stop LocalStack |
51 | 61 | docker-compose down |
52 | 62 |
|
53 | | -destroy-aws: venv |
| 63 | +destroy-aws: venv ## Destroy the stack on AWS |
54 | 64 | $(VENV_RUN); $(CLOUD_ENV) cdk destroy --require-approval never |
55 | 65 |
|
56 | | -run: |
| 66 | +run: ## Run the application on LocalStack |
57 | 67 | $(VENV_RUN); $(LOCAL_ENV) python run.py |
58 | 68 |
|
59 | | -run-aws: |
| 69 | +run-aws: ## Run the application on AWS |
60 | 70 | $(VENV_RUN); $(CLOUD_ENV) python run.py |
| 71 | + |
| 72 | +test: ## Test the application on LocalStack |
| 73 | + $(VENV_RUN); $(LOCAL_ENV) pytest tests/test_infra.py |
| 74 | + |
| 75 | +logs: ## Show logs from LocalStack |
| 76 | + @docker logs localstack-main > logs.txt |
| 77 | + |
| 78 | +.PHONY: usage install start deploy test logs stop deploy-aws test-aws destroy-aws |
0 commit comments