name: Deploy on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: # actions/checkout скачивает свой код с github.com и берёт URL из # внутреннего server_url Gitea — оба варианта требуют сети, которой # у джоб-контейнера раннера нет. Клонируем напрямую по внутреннему # адресу Gitea в docker-сети раннера. - name: Checkout run: git clone --depth=1 --branch main http://gitea:3000/cacto/cactoz.su.git repo # Runner уже на cacto-homelab и имеет доступ к docker.sock хоста, # поэтому образ собирается прямо на месте — без registry и без SSH. - name: Sync to deploy directory run: | rm -rf /data/docker/compose/cactoz mkdir -p /data/docker/compose/cactoz cp -a repo/. /data/docker/compose/cactoz/ rm -rf /data/docker/compose/cactoz/.git - 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