name: Deploy t-youtube on: push: branches: [main] paths: - 'backend/**' - 'frontend/**' - 'Dockerfile' - '.gitea/workflows/deploy.yml' workflow_dispatch: jobs: build-and-deploy: name: Build & Deploy runs-on: nas steps: - name: Checkout run: | rm -rf /volume1/docker/t-youtube-build git clone --depth=1 http://gitea:3000/jimmy/t-youtube.git /volume1/docker/t-youtube-build 2>&1 - name: Build Docker image run: | cd /volume1/docker/t-youtube-build /volume1/@appstore/ContainerManager/usr/bin/docker build -t t-youtube:latest . 2>&1 - name: Swap container run: | D=/volume1/@appstore/ContainerManager/usr/bin $D/docker stop t-youtube 2>/dev/null || true $D/docker rm t-youtube 2>/dev/null || true $D/docker run -d --name t-youtube --restart unless-stopped \ -p 8001:8000 \ --env-file /volume1/docker/t-youtube/.env \ -v /volume1/docker/t-youtube/data:/app/data \ -v /volume1/docker/t-youtube/config:/app/config \ t-youtube:latest 2>&1 rm -rf /volume1/docker/t-youtube-build - name: Verify run: | sleep 5 D=/volume1/@appstore/ContainerManager/usr/bin STATUS=$($D/docker ps --filter name=t-youtube --format "{{.Status}}") echo "Container: $STATUS" if ! echo "$STATUS" | grep -q "Up"; then $D/docker logs t-youtube --tail 20 exit 1 fi