Files
freelancer-match/.drone.yml
T
admin 4ccf4b7184 feat: завершить проект — добавить недостающие файлы, тесты и CI/CD
- backend/app/schemas/auth.py, ai_match.py, escrow.py (схемы)
- frontend/components/ui/button.tsx (UI компонент)
- email-validator в requirements.txt
- frontend/tsconfig.json, tailwind.config.js, postcss.config.js
- frontend: login page, projects/[id] page, ai-match page
- Dockerfile для backend и frontend
- docker-compose.yml с app-контейнерами и healthcheck
- .env.example с полными переменными окружения
- backend/tests/ — pytest тесты (conftest + test_health)
- .drone.yml — CI/CD пайплайн для Drone CI
- README.md — полный гайд по деплою
2026-07-03 13:28:19 +00:00

61 lines
1.6 KiB
YAML

---
kind: pipeline
type: docker
name: freelancer-match-ci
steps:
- name: backend-tests
image: python:3.12-slim
commands:
- pip install pytest pytest-asyncio aiosqlite httpx
- cd backend && pytest tests/ -v
- name: frontend-lint
image: node:20-alpine
commands:
- cd frontend && npm ci
- npx next lint --dir app
- name: build-backend
image: docker:24.0
privileged: true
environment:
DOCKER_USERNAME:
from_secret: gitea_username
DOCKER_PASSWORD:
from_secret: gitea_password
commands:
- echo "$DOCKER_PASSWORD" | docker login ms.webhop.me -u "$DOCKER_USERNAME" --password-stdin
- cd backend && docker build -t ms.webhop.me/admin/freelancer-match-backend .
- name: build-frontend
image: docker:24.0
privileged: true
environment:
DOCKER_USERNAME:
from_secret: gitea_username
DOCKER_PASSWORD:
from_secret: gitea_password
commands:
- echo "$DOCKER_PASSWORD" | docker login ms.webhop.me -u "$DOCKER_USERNAME" --password-stdin
- cd frontend && docker build -t ms.webhop.me/admin/freelancer-match-frontend .
- name: deploy
image: alpine:3.19
commands:
- apk add curl bash
- |
echo "Deploying to production..."
# TODO: Добавить SSH ключ для деплоя на сервер
# ssh root@ms.webhop.me "cd /opt/gitea && docker compose pull && docker compose up -d"
---
kind: secret
name: gitea_username
from_secret: drone_gitea_user
---
kind: secret
name: gitea_password
from_secret: drone_gitea_pass