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 kind: pipeline
type: docker
name: Django CI/CD name: Django CI/CD
steps: 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 - name: test
image: python:3.10 image: python:3.12-alpine
environment: environment:
DATABASE_URL: mysql://root@R0sebud:0.0.0.0:3308/w1510415_wp832 MYSQL_PASSWORD: touchh
commands: commands:
- python3 -m venv .venv - apk add --no-cache mariadb-client
- . .venv/bin/activate - pip install -r requirements.txt
- pip3 install --upgrade pip - python manage.py test
- pip3 install -r requirements.txt
- python3 manage.py migrate
- flake8 . # Линтер
- pytest # Запуск тестов
# Шаг 2: Запуск и проверка Telegram-бота services:
- name: bot-check # Сервис базы данных
image: python:3.10 - name: db
image: mariadb:11.6
environment: environment:
DATABASE_URL: mysql://root@R0sebud:0.0.0.0:3308/w1510415_wp832 MYSQL_RANDOM_ROOT_PASSWORD: 1
commands: MYSQL_DATABASE: touchh
- python3 -m venv .venv MYSQL_USER: touchh
- . .venv/bin/activate MYSQL_PASSWORD: touchh
- pip3 install --upgrade pip volumes:
- pip3 install -r requirements.txt - ./var/mysql:/var/lib/mysql
- python3 manage.py run_bot & # Запуск бота в фоне
- sleep 5 # Ждём, чтобы бот запустился
- python3 test_bot.py # Проверка работы бота
# services: # Сервис docker-compose
# # Шаг 3: Сервис базы данных MySQL - name: docker
# - name: mysql image: docker:24
# image: mysql:8 privileged: true
# environment: environment:
# MYSQL_ROOT_PASSWORD: R0sebud MYSQL_PASSWORD: touchh
# MYSQL_USER: user volumes:
# MYSQL_PASSWORD: password - /var/run/docker.sock:/var/run/docker.sock
# MYSQL_DATABASE: w1510415_wp832
trigger: trigger:
event: event: