Files
cactoz.su/.gitea/workflows/deploy.yml
T
cacto 6b3ba11faf Обойти DNS-проблему в деплое: клонировать по публичному URL
actions/checkout использует внутренний server_url Gitea (http://gitea:3000/...),
который джоб-контейнер раннера не резолвит (не в docker-сети Gitea).
Явный git clone по https://git.cactoz.su/... не зависит от этой внутренней сети.
2026-07-26 22:30:46 +05:00

30 lines
1.2 KiB
YAML

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