From d849517cb2c758a001d58c9d58d350735e8f5536 Mon Sep 17 00:00:00 2001 From: FazziCLAY Date: Fri, 3 Apr 2026 12:32:39 +0300 Subject: [PATCH] commit --- .gitea/workflows/deploy.yml | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..32e5abb --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,52 @@ +name: Build and Run VSTU Compat Layer v1 + +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_compat_v1:latest . + + # Шаг 3: Перезапуск контейнера на хост-машине + # Это сердце упрощенного workflow + - name: Restart the container + run: | + # 1. Останавливаем и удаляем старый контейнер, если он существует. + # `docker ps -q -f name=...` вернет ID контейнера, если он запущен. + # Конструкция `[ $(...) ] && ...` проверит, не пустой ли вывод. + if [ "$(docker ps -q -f name=vstu_schedule_repopulator)" ]; then + echo "Stopping and removing existing container..." + docker stop vstu_schedule_repopulator + docker rm vstu_schedule_repopulator + else + echo "No running container found. Skipping stop/remove." + fi + + # 2. Запускаем новый контейнер из только что собранного локального образа. + # Команда точно такая же, как твоя. + echo "Starting new container..." + docker run -d \ + --network cl2so4 \ + --ip 172.20.0.48 \ + -v /home/holder/fclay/secrets/vstu_schedule_repopulator.env:/app/.env \ + --restart=always \ + --name=vstu_schedule_repopulator \ + vstu_schedule_repopulator:latest + + # (Опционально) Шаг 4: Очистка старых, "висячих" образов + # Это хорошая практика, чтобы не засорять диск. + - name: Clean up old images + if: always() # Выполнять этот шаг всегда, даже если предыдущие провалились + run: docker image prune -f \ No newline at end of file