Files
VSTU_Schedule_Parser/.gitea/workflows/deploy.yml
T
fazziclay 11d03bfe12
Build and Run VSTU Schedule Parser / build_and_run (push) Failing after 34s
ci: added ci/cd
2026-03-28 22:34:15 +03:00

56 lines
2.6 KiB
YAML

name: Build and Run VSTU Schedule Parser
on:
push:
branches:
- main
jobs:
build_and_run:
runs-on: ubuntu-latest
steps:
# Шаг 1: Получаем исходный код проекта
- name: Checkout code
uses: actions/checkout@v3
# Шаг 2: Сборка Docker-образа локально на хост-машине
# Мы не пушим его в registry, а просто создаем с нужным тегом.
- name: Build Docker image
run: docker build -t vstu_schedule_parser_v2:latest .
# Шаг 3: Перезапуск контейнера на хост-машине
# Это сердце упрощенного workflow
- name: Restart the container
run: |
# 1. Останавливаем и удаляем старый контейнер, если он существует.
# `docker ps -q -f name=...` вернет ID контейнера, если он запущен.
# Конструкция `[ $(...) ] && ...` проверит, не пустой ли вывод.
if [ "$(docker ps -q -f name=vstu_schedule_parser_v2)" ]; then
echo "Stopping and removing existing container..."
docker stop vstu_schedule_parser_v2
docker rm vstu_schedule_parser_v2
else
echo "No running container found. Skipping stop/remove."
fi
# 2. Запускаем новый контейнер из только что собранного локального образа.
# Команда точно такая же, как твоя.
echo "Starting new container..."
docker run -d \
--network cl2so4 \
--ip 172.20.0.59 \
-v /home/holder/fclay/secrets/vstu_schedule_parser_v2.env:/app/.env
-v /home/holder/fclay/fclaydata/vstu_schedule_parser_v2/parsed:/app/parsed
-v /home/holder/fclay/fclaydata/vstu_schedule_parser_v2/parser.json:/app/parser.json
-v /home/holder/fclay/fclaydata/vstu_schedule_parser_v2/result_v2.json:/app/result_v2.json
--restart=always \
--name=vstu_schedule_parser_v2 \
vstu_schedule_parser_v2:latest
# (Опционально) Шаг 4: Очистка старых, "висячих" образов
# Это хорошая практика, чтобы не засорять диск.
- name: Clean up old images
if: always() # Выполнять этот шаг всегда, даже если предыдущие провалились
run: docker image prune -f