Files
chat/DRONE_SETUP.md
Andrew K. Choi dc50a9858e
Some checks failed
continuous-integration/drone/push Build is failing
pipeline features
2025-09-25 08:59:19 +09:00

5.1 KiB
Raw Blame History

Drone CI/CD Setup Instructions

🚁 Настройка Drone Pipeline для Women's Safety Backend

Предварительные требования

  1. Drone Server - установлен и настроен
  2. Docker Registry - для хранения образов
  3. 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

Общие проблемы:

  1. Build fails на этапе Docker push:

    # Проверить Docker credentials
    drone secret ls women-safety/backend
    
  2. SSH Connection Failed:

    # Проверить SSH ключи
    drone secret update --repository women-safety/backend \
      --name production_ssh_key --data @~/.ssh/id_rsa
    
  3. 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

  1. Secrets Management:

    • Никогда не коммитить секреты
    • Использовать Drone secrets для всех чувствительных данных
    • Регулярно ротировать ключи
  2. Image Security:

    • Сканирование образов с Trivy
    • Использование minimal base images
    • Регулярные обновления зависимостей
  3. 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