name: build-and-deploy

on:
  push:
    branches: [ main ]

jobs:
#───────────────── build & push ─────────────────
  build:
    runs-on: docker
    env:
      REG: gitea.nucleoriofrio.com/nucleo000
    steps:
      - uses: actions/checkout@v3
      - uses: docker/setup-buildx-action@v2
      - uses: docker/login-action@v2
        with:
          registry: gitea.nucleoriofrio.com
          username: nucleo000
          password: 7bc7b2fcd283bd6a251bef3ede368b7f897c919d

      - name: Build+push repodructor
        run: |
          docker build -t $REG/repodructor:${{ github.sha }} -t $REG/repodructor:latest .
          docker push $REG/repodructor:${{ github.sha }}
          docker push $REG/repodructor:latest

#───────────────── deploy ─────────────────
  deploy:
    needs: build
    runs-on: docker
    env:
      REG: gitea.nucleoriofrio.com/nucleo000
    steps:
      - uses: actions/checkout@v3
      - name: Login to registry
        run: docker login gitea.nucleoriofrio.com -u nucleo000 -p 7bc7b2fcd283bd6a251bef3ede368b7f897c919d

      - name: Info about music directory
        run: |
          echo "ℹ️  Music directory expected at: /srv/repodructor/musica"
          echo "   Make sure it's mounted and accessible on the deployment host"

      - name: Pull fresh images used in compose
        run: docker compose pull

      - name: Clean up stack
        run: docker compose --project-name repodructor down

      - name: Update stack
        run: docker compose --project-name repodructor up -d --remove-orphans --wait