vitorsalgado/react-web-starter

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
.ONESHELL:
.DEFAULT_GOAL := help

# allow user specific optional overrides
-include Makefile.overrides

export

# Global Parameters
# ---
PROJECT := react-web-starter
DOCKER_NAME := PROJECT
NGINX_PORT := 3000
CONTEXT := $$(pwd)

# Help
# ---
.DEFAULT_GOAL := help
.PHONY: help
help:
    @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)

start: ## Start Dev Server with Hot Reload
    @npm start

up: ## Run a development environment with Docker Compose.
    @docker-compose -f ./deployments/dev/docker-compose.yml up

down: ## Stop Docker Compose development environment.
    @docker-compose -f ./deployments/dev/docker-compose.yml down

dev-clean: ## Clean Docker Compose development environment.
    @docker-compose -f ./deployments/dev/docker-compose.yml down --remove-orphans --volumes

.PHONY: check
check:
    @npm run lint:ci
    @npm run test:ci
    @npm run test:e2e

.PHONY: fmt
fmt: # Format code
    @npm run fmt

.PHONY: lint
lint: # Lint code
    @npm run lint

.PHONY: dist
dist: ## Server dist/ with a nginx docker. Use -e NGINX_PORT parameter to change Nginx port. Defaults to 3000.
    @docker run -it --rm \
        -p $(NGINX_PORT):80 \
        --name web \
        -v $(CONTEXT)/dist:/usr/share/nginx/html -v $(CONTEXT)/config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
        nginx

docker-build: ## Builds production Docker.
    @docker build --tag $(DOCKER_NAME) --file build/docker/Dockerfile .

docker-run: ## Run production Docker.
    @docker run --rm -p $(NGINX_PORT):80 --name $(DOCKER_NAME) $(DOCKER_NAME)