diff --git a/Makefile b/Makefile deleted file mode 100644 index 8f34119..0000000 --- a/Makefile +++ /dev/null @@ -1,121 +0,0 @@ -# ───────────────────────────────────────────────────────────── -# Variáveis -# ───────────────────────────────────────────────────────────── - -DEV_COMPOSE = docker/docker-compose.dev.yml -PROD_COMPOSE = docker/docker-compose.prod.yml -TEST_COMPOSE = docker/docker-compose.test.yml - -TREE_IGNORE = node_modules|.git|dist|*.env* - -# ───────────────────────────────────────────────────────────── -# Phony -# ───────────────────────────────────────────────────────────── - -.PHONY: \ - check-env \ - lint typecheck build \ - ci-test \ - dev-up dev-stop dev-start dev-down dev-reset dev-migrate \ - prod-up prod-migrate \ - test-up test-down test-reset test-migrate test \ - tree - -# ───────────────────────────────────────────────────────────── -# Environment Check -# ───────────────────────────────────────────────────────────── - -check-env: - @if [ -z "$$DATABASE_URL" ]; then \ - echo "❌ DATABASE_URL não definida"; \ - exit 1; \ - fi - -# ───────────────────────────────────────────────────────────── -# Quality -# ───────────────────────────────────────────────────────────── - -lint: - pnpm lint - -typecheck: - pnpm tsc --noEmit - -# ───────────────────────────────────────────────────────────── -# CI -# ───────────────────────────────────────────────────────────── - -ci-test: - make test-reset - make test-up - make test-migrate - make test - make test-down - -# ───────────────────────────────────────────────────────────── -# DEV -# ───────────────────────────────────────────────────────────── - -dev-up: - @echo "🚧 Subindo Postgres DEV" - docker compose -f $(DEV_COMPOSE) up -d - -dev-stop: - @echo "⏹️ Parando containers DEV" - docker compose -f $(DEV_COMPOSE) stop - -dev-start: - @echo "▶️ Iniciando containers DEV" - docker compose -f $(DEV_COMPOSE) start - -dev-down: - @echo "⬇️ Removendo containers DEV (mantendo volumes)" - docker compose -f $(DEV_COMPOSE) down - -dev-reset: - @echo "💥 Resetando ambiente DEV (containers + volumes)" - docker compose -f $(DEV_COMPOSE) down -v - -dev-migrate: check-env - npx ts-node src/infrastructure/scripts/migrate.ts - -# ───────────────────────────────────────────────────────────── -# PROD -# ───────────────────────────────────────────────────────────── - -prod-up: - @echo "🚀 Subindo Postgres PROD" - docker compose -f $(PROD_COMPOSE) up -d - -prod-migrate: check-env - npx ts-node src/infrastructure/scripts/migrate.ts - -# ───────────────────────────────────────────────────────────── -# TEST -# ───────────────────────────────────────────────────────────── - -test-up: - @echo "🧪 Subindo Postgres TEST" - docker compose -f $(TEST_COMPOSE) up -d --wait - -test-down: - @echo "⬇️ Removendo containers TEST (mantendo volumes)" - docker compose -f $(TEST_COMPOSE) down - -test-reset: - @echo "💥 Resetando ambiente TEST (containers + volumes)" - docker compose -f $(TEST_COMPOSE) down -v - -test-migrate: check-env - npx ts-node src/infrastructure/scripts/migrate.ts - -test: - pnpm jest - -# ───────────────────────────────────────────────────────────── -# Utils -# ───────────────────────────────────────────────────────────── - -tree: - @echo "🌳 Estrutura de pastas" - tree -a -L 6 -I "$(TREE_IGNORE)" --prune diff --git a/Taskfile.yml b/Taskfile.yml index cd915ec..0b51ce6 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -20,6 +20,19 @@ tasks: exit 1 fi + migrate: + deps: [check-env] + cmds: + - pnpm migrate + + # ───────────────────────────────────────────── + # Helpers + # ───────────────────────────────────────────── + + compose: + cmds: + - docker compose -f {{.FILE}} {{.CMD}} + # ───────────────────────────────────────────── # Quality # ───────────────────────────────────────────── @@ -40,8 +53,9 @@ tasks: cmds: - task test-reset - task test-up - - task test-migrate - - pnpm jest + - task migrate + - | + pnpm jest || (task test-down && exit 1) - task test-down # ───────────────────────────────────────────── @@ -51,32 +65,28 @@ tasks: dev-up: cmds: - echo "🚧 Subindo Postgres DEV" - - docker compose -f {{.DEV_COMPOSE}} up -d + - task compose FILE={{.DEV_COMPOSE}} CMD="up -d" dev-stop: cmds: - echo "⏹️ Parando containers DEV" - - docker compose -f {{.DEV_COMPOSE}} stop + - task compose FILE={{.DEV_COMPOSE}} CMD="stop" dev-start: cmds: - echo "▶️ Iniciando containers DEV" - - docker compose -f {{.DEV_COMPOSE}} start + - task compose FILE={{.DEV_COMPOSE}} CMD="start" dev-down: cmds: - echo "⬇️ Removendo containers DEV (mantendo volumes)" - - docker compose -f {{.DEV_COMPOSE}} down + - task compose FILE={{.DEV_COMPOSE}} CMD="down" dev-reset: cmds: - echo "💥 Resetando ambiente DEV (containers + volumes)" - - docker compose -f {{.DEV_COMPOSE}} down -v + - task compose FILE={{.DEV_COMPOSE}} CMD="down -v" - dev-migrate: - deps: [check-env] - cmds: - - npx ts-node src/infrastructure/scripts/migrate.ts # ───────────────────────────────────────────── # PROD @@ -85,12 +95,8 @@ tasks: prod-up: cmds: - echo "🚀 Subindo Postgres PROD" - - docker compose -f {{.PROD_COMPOSE}} up -d + - task compose FILE={{.PROD_COMPOSE}} CMD="up -d" - prod-migrate: - deps: [check-env] - cmds: - - npx ts-node src/infrastructure/scripts/migrate.ts # ───────────────────────────────────────────── # TEST @@ -99,22 +105,18 @@ tasks: test-up: cmds: - echo "🧪 Subindo Postgres TEST" - - docker compose -f {{.TEST_COMPOSE}} up -d --wait + - task compose FILE={{.TEST_COMPOSE}} CMD="up -d --wait" test-down: cmds: - echo "⬇️ Removendo containers TEST (mantendo volumes)" - - docker compose -f {{.TEST_COMPOSE}} down + - task compose FILE={{.TEST_COMPOSE}} CMD="down" test-reset: cmds: - echo "💥 Resetando ambiente TEST (containers + volumes)" - - docker compose -f {{.TEST_COMPOSE}} down -v + - task compose FILE={{.TEST_COMPOSE}} CMD="down -v" - test-migrate: - deps: [check-env] - cmds: - - npx ts-node src/infrastructure/scripts/migrate.ts # ───────────────────────────────────────────── # Utils diff --git a/package.json b/package.json index 959591f..d9c669a 100644 --- a/package.json +++ b/package.json @@ -8,16 +8,17 @@ "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "migrate": "ts-node src/infrastructure/scripts/migrate.ts", "start": "nest start", - "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", + "start:dev": "nest start --watch", "start:prod": "node dist/main", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", - "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:e2e": "jest --config ./test/jest-e2e.json" + "test:e2e": "jest --config ./test/jest-e2e.json", + "test:watch": "jest --watch" }, "dependencies": { "@nestjs/common": "^11.0.1",