This commit is contained in:
2024-12-28 10:14:43 +09:00
parent b0d5b5d542
commit 90ab6375e9

View File

@@ -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: