Files
userbot/.gitea/workflows/deploy.yaml
T

45 lines
1.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: CD staged deploy
on:
push:
branches: [main]
jobs:
detect-changes:
runs-on: deploy
outputs:
services: ${{ steps.set-matrix.outputs.services }}
steps:
- name: Fix git ownership and Fetch
run: |
git config --global --add safe.directory /srv/homelab
cd /srv/homelab
git fetch origin main
git reset --hard origin/main
- id: set-matrix
name: Generate service list
run: |
cd /srv/homelab
# Собираем список папок в JSON-массив для матрицы
DIRS=$(git diff --name-only HEAD~1 HEAD | cut -d/ -f1 | sort -u | xargs -I{} sh -c 'if [ -f {}/compose.yaml ] || [ -f {}/docker-compose.yaml ]; then echo \"{}\"; fi' | paste -sd,)
echo "services=[$DIRS]" >> $GITEA_OUTPUT
apply-deploy:
needs: detect-changes
if: needs.detect-changes.outputs.services != '[]'
runs-on: deploy
strategy:
matrix:
service: ${{ fromJson(needs.detect-changes.outputs.services) }}
fail-fast: false
name: Deploy ${{ matrix.service }}
steps:
- name: Deploy Service
run: |
cd /srv/homelab/${{ matrix.service }}
echo "Syncing and starting ${{ matrix.service }}..."
docker compose pull
docker compose up -d --remove-orphans