5.1 KiB
5.1 KiB
Drone CI/CD Setup Instructions
🚁 Настройка Drone Pipeline для Women's Safety Backend
Предварительные требования
- Drone Server - установлен и настроен
- Docker Registry - для хранения образов
- Production Servers - настроены для развертывания
1. Настройка Repository в Drone
# Активация репозитория
drone repo enable women-safety/backend
# Настройка доверенного режима (для Docker)
drone repo update --trusted women-safety/backend
2. Настройка Secrets
# Docker Registry
drone secret add --repository women-safety/backend \
--name docker_username --data "your-docker-username"
drone secret add --repository women-safety/backend \
--name docker_password --data "your-docker-password"
# Production SSH
drone secret add --repository women-safety/backend \
--name production_host --data "production.example.com"
drone secret add --repository women-safety/backend \
--name production_user --data "deploy"
drone secret add --repository women-safety/backend \
--name production_ssh_key --data @~/.ssh/id_rsa
# Staging SSH
drone secret add --repository women-safety/backend \
--name staging_host --data "staging.example.com"
drone secret add --repository women-safety/backend \
--name staging_user --data "deploy"
drone secret add --repository women-safety/backend \
--name staging_ssh_key --data @~/.ssh/id_rsa_staging
# Notifications
drone secret add --repository women-safety/backend \
--name slack_webhook --data "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK"
3. Настройка Pipeline Triggers
# Настройка cron для уязвимостей (каждую ночь в 2:00)
drone cron add --repository women-safety/backend \
--name nightly-security-scan \
--expr "0 2 * * *" \
--branch main
# Настройка cron для производительности (каждое воскресенье в 3:00)
drone cron add --repository women-safety/backend \
--name weekly-performance-test \
--expr "0 3 * * 0" \
--branch main
4. Workflow
Development Workflow:
1. Push to feature branch
2. ✅ Lint & Type Check
3. ✅ Unit Tests
4. ✅ Security Scan
5. ✅ Build Images
6. ✅ Integration Tests
Staging Deployment:
1. Merge to 'develop' branch
2. ✅ Full Pipeline
3. 🚀 Auto-deploy to staging
4. 📱 Slack notification
Production Deployment:
1. Merge to 'main' branch
2. ✅ Full Pipeline
3. ✅ Security & Performance validation
4. 🚀 Deploy to production
5. 📊 Health checks
6. 📱 Success notification
5. Мониторинг Pipeline
Dashboard URLs:
- Drone UI:
https://drone.example.com/women-safety/backend - Build Status:
https://drone.example.com/api/badges/women-safety/backend/status.svg
CLI Commands:
# Просмотр статуса
drone build ls women-safety/backend
# Логи последнего build
drone build logs women-safety/backend
# Перезапуск build
drone build restart women-safety/backend 123
# Промотирование в продакшен
drone build promote women-safety/backend 123 production
6. Troubleshooting
Общие проблемы:
-
Build fails на этапе Docker push:
# Проверить Docker credentials drone secret ls women-safety/backend -
SSH Connection Failed:
# Проверить SSH ключи drone secret update --repository women-safety/backend \ --name production_ssh_key --data @~/.ssh/id_rsa -
Integration tests timeout:
# Увеличить timeout в .drone.yml # Или проверить ресурсы на build сервере
7. Performance Tuning
Pipeline Optimization:
# Параллельные этапы
depends_on: [setup]
# Кэширование
volumes:
- name: cache
host:
path: /tmp/cache
Resource Limits:
# Настройка ресурсов для тяжелых задач
environment:
DOCKER_BUILDKIT: 1
8. Security Best Practices
-
Secrets Management:
- Никогда не коммитить секреты
- Использовать Drone secrets для всех чувствительных данных
- Регулярно ротировать ключи
-
Image Security:
- Сканирование образов с Trivy
- Использование minimal base images
- Регулярные обновления зависимостей
-
Network Security:
- VPN для production deployments
- Firewall rules для Drone server
- SSL/TLS для всех соединений
9. Backup & Recovery
# Backup Drone database
drone backup
# Restore configuration
drone restore backup-file.tar.gz
📞 Support
- Documentation: Drone Docs
- Community: Drone Community
- Issues: Create issue в репозитории проекта