/
Andromeda141
/
Adventure-service
Обзор
Документация
Войти
/
Andromeda141
/
Adventure-service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
poll
Taskfile.yml
92 строки
3 KB
andrewvnukov
Polls 1.0 + Profile
07 июн 2026, 15:15
07 июн 2026, 15:15
e6f3e2e
Код
Авторство
О чём код?
version: '3' vars: SERVER_DIR: "./" TMP_DIR: "./tmp" AIR_BIN: '{{if eq OS "windows"}}./bin/air.exe{{else}}./bin/air{{end}}' OAPI_CONFIG: "contracts/v1/oapi-codegen.yaml" OAPI_SPEC: "contracts/v1/openapi.yaml" GO_TARGET: "./..." # 🗄 Настройки БД DB_HOST: "localhost" DB_PORT: "5433" DB_USER: "postgres" DB_PASSWORD: "1234" DB_TEST_NAME: "trip_service_test" DB_NAME: "trip_service" SCHEMA_FILE: "trip_schema.sql" # Путь к psql (используем / вместо \ для безопасного парсинга YAML) PSQL_PATH: "C:/Program Files/PostgreSQL/16/bin/psql.exe" tasks: build:front: desc: "Собрать фронтэнд" dir: "/frontend" cmd: npm run build start: desc: "🚀 Запуск сервера приложения" cmds: - task build:front - go run {{.SERVER_DIR}} gen: desc: "🛠 Генерация кода из OpenAPI спецификации" cmd: oapi-codegen -config {{.OAPI_CONFIG}} {{.OAPI_SPEC}} fmt: desc: "✨ Форматирование исходного кода Go" cmd: go fmt {{.GO_TARGET}} deps: desc: "📦 Проверка, очистка и установка зависимостей модуля" cmds: - go mod tidy - go mod download watch: desc: "🔁 Hot reload сервера через air" cmds: - task build:front - '{{if eq OS "windows"}}cmd /c "mkdir tmp 2>nul || exit 0"{{else}}mkdir -p tmp{{end}}' - cmd: "{{.AIR_BIN}} --build.cmd 'go build -o {{.TMP_DIR}}/main.exe {{.SERVER_DIR}}' --build.bin '{{.TMP_DIR}}/main.exe' --build.delay 1000 --build.exclude_dir 'tmp,vendor,node_modules,.git,bin' --build.include_ext 'go,yaml,json,html,toml' --build.include_dir 'server,pkg,contracts,repository' --tmp_dir '{{.TMP_DIR}}' --root '.'" ignore_error: false test:unit: desc: "🧪 Поднимает тестовую БД, запускает тесты и дропает её (гарантированный дроп)" env: PGPASSWORD: "{{.DB_PASSWORD}}" DB_NAME: "{{.DB_TEST_NAME}}" cmds: - cmd: "go test ./tests/repository/... -v" test:api: desc: "🧪 API интеграционные тесты: поднимает тестовую БД, запускает тесты, дропает БД" cmds: - cmd: "go test ./tests/integration/... -v" test: desc: "Запуск всех тестов" cmds: - cmd: "go test ./tests/... -v" db:clear: desc: "🧪 Дропает основную БД и запускает заново из миграции" cmds: # 1. Удаление БД - cmd: > "{{.PSQL_PATH}}" -h {{.DB_HOST}} -p {{.DB_PORT}} -U {{.DB_USER}} -c "DROP DATABASE IF EXISTS {{.DB_NAME}} WITH (FORCE);" # 2. Поднятие БД - cmd: > "{{.PSQL_PATH}}" -h {{.DB_HOST}} -p {{.DB_PORT}} -U {{.DB_USER}} -c "CREATE DATABASE {{.DB_NAME}};" - cmd: > "{{.PSQL_PATH}}" -h {{.DB_HOST}} -p {{.DB_PORT}} -U {{.DB_USER}} -d {{.DB_NAME}} -f {{.SCHEMA_FILE}} db:migration: desc: "Выполняет миграцию" cmds: - cmd: > "{{.PSQL_PATH}}" -h {{.DB_HOST}} -p {{.DB_PORT}} -U {{.DB_USER}} -d {{.DB_NAME}} -f migration_poll_fixes.sql