name: Deploy on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: # actions/checkout берёт URL из внутреннего server_url Gitea (http://gitea:3000/...), # который джоб-контейнер раннера резолвить не может (не в той же docker-сети). # Клонируем напрямую по публичному адресу, чтобы не зависеть от этой сети. - name: Checkout run: git clone --depth=1 --branch main https://git.cactoz.su/cacto/cactoz.su.git repo # Runner уже на cacto-homelab и имеет доступ к docker.sock хоста, # поэтому образ собирается прямо на месте — без registry и без SSH. - name: Sync to deploy directory run: | mkdir -p /data/docker/compose/cactoz rsync -a --delete --exclude '.git' repo/ /data/docker/compose/cactoz/ - name: Build and restart working-directory: /data/docker/compose/cactoz run: | docker compose -f docker-compose.prod.yml build docker compose -f docker-compose.prod.yml up -d docker image prune -f