actions/checkout использует внутренний server_url Gitea (http://gitea:3000/...), который джоб-контейнер раннера не резолвит (не в docker-сети Gitea). Явный git clone по https://git.cactoz.su/... не зависит от этой внутренней сети.
30 lines
1.2 KiB
YAML
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
|