Skip to content

local path issue fix attempt #12 #21

local path issue fix attempt #12

local path issue fix attempt #12 #21

Workflow file for this run

# Название рабочего процесса CI/CD для ML проекта
name: ML Pipeline CI/CD
# Триггеры для запуска workflow
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch: # Позволяет запускать вручную
# Определение заданий
jobs:
# Задание для проверки качества кода и обучения модели
ml-pipeline:
runs-on: ubuntu-latest
steps:
# Шаг 1: Получение кода из репозитория
- name: Checkout код
uses: actions/checkout@v4
# Шаг 2: Установка Python
- name: Установка Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
# Шаг 3: Установка зависимостей
- name: Установка зависимостей
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install anywidget
# Шаг 4: Подготовка данных
- name: Подготовка данных и директорий
run: |
mkdir -p data reports models
if [ ! -f data/iris_dataset.csv ]; then
echo "Генерация датасета Iris..."
python -c "
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target
df.to_csv('data/iris_dataset.csv', index=False)
print('Датасет создан')
"
fi
# Шаг 5: Проверка качества данных с Deepchecks
- name: Проверка данных с Deepchecks
run: |
echo "Запуск проверки качества данных..."
python check_data.py
# Шаг 6: Анализ дрейфа данных с EvidentlyAI
- name: Анализ дрейфа данных с EvidentlyAI
run: |
echo "Запуск анализа дрейфа данных..."
python analyze_drift.py
# Шаг 7: Обучение модели с MLflow
- name: Обучение модели с MLflow
run: |
echo "Запуск обучения модели..."
python train.py
env:
MLFLOW_TRACKING_URI: file:./mlruns
# Шаг 8: Сохранение артефактов (отчеты, модели)
- name: Сохранение артефактов
uses: actions/upload-artifact@v4
if: always()
with:
name: ml-artifacts
path: |
reports/
models/
data/
retention-days: 30
# Шаг 9: Публикация результатов
- name: Публикация результатов
if: always()
run: |
echo "Пайплайн завершен успешно"
echo "Артефакты сохранены и доступны для скачивания"