diff --git a/.drone.yml b/.drone.yml index 6168f6ac..ea243bb7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,45 +1,66 @@ kind: pipeline -type: docker name: Django CI/CD steps: - # Шаг 1: Установка зависимостей, миграции и тесты + # Шаг 1: Клонирование репозитория + - name: clone + image: alpine/git + commands: + - git clone $DRONE_REPO_URL . + - git checkout $DRONE_COMMIT + + # Шаг 2: Обновление и запуск с помощью update.sh + - name: deploy + image: docker:24 + environment: + MYSQL_PASSWORD: touchh + volumes: + - /var/run/docker.sock:/var/run/docker.sock + commands: + - chmod +x ./bin/update.sh + - ./bin/update.sh + + # Шаг 3: Миграция базы данных + - name: migrate + image: docker:24 + environment: + MYSQL_PASSWORD: touchh + volumes: + - /var/run/docker.sock:/var/run/docker.sock + commands: + - chmod +x ./bin/cli.sh + - ./bin/cli migrate + + # Шаг 4: Тестирование - name: test - image: python:3.10 + image: python:3.12-alpine environment: - DATABASE_URL: mysql://root@R0sebud:0.0.0.0:3308/w1510415_wp832 + MYSQL_PASSWORD: touchh commands: - - python3 -m venv .venv - - . .venv/bin/activate - - pip3 install --upgrade pip - - pip3 install -r requirements.txt - - python3 manage.py migrate - - flake8 . # Линтер - - pytest # Запуск тестов + - apk add --no-cache mariadb-client + - pip install -r requirements.txt + - python manage.py test - # Шаг 2: Запуск и проверка Telegram-бота - - name: bot-check - image: python:3.10 +services: + # Сервис базы данных + - name: db + image: mariadb:11.6 environment: - DATABASE_URL: mysql://root@R0sebud:0.0.0.0:3308/w1510415_wp832 - commands: - - python3 -m venv .venv - - . .venv/bin/activate - - pip3 install --upgrade pip - - pip3 install -r requirements.txt - - python3 manage.py run_bot & # Запуск бота в фоне - - sleep 5 # Ждём, чтобы бот запустился - - python3 test_bot.py # Проверка работы бота + MYSQL_RANDOM_ROOT_PASSWORD: 1 + MYSQL_DATABASE: touchh + MYSQL_USER: touchh + MYSQL_PASSWORD: touchh + volumes: + - ./var/mysql:/var/lib/mysql -# services: -# # Шаг 3: Сервис базы данных MySQL -# - name: mysql -# image: mysql:8 -# environment: -# MYSQL_ROOT_PASSWORD: R0sebud -# MYSQL_USER: user -# MYSQL_PASSWORD: password -# MYSQL_DATABASE: w1510415_wp832 + # Сервис docker-compose + - name: docker + image: docker:24 + privileged: true + environment: + MYSQL_PASSWORD: touchh + volumes: + - /var/run/docker.sock:/var/run/docker.sock trigger: event: