52 lines
1.6 KiB
YAML
52 lines
1.6 KiB
YAML
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: |
|
|
cd /volume1/docker/t-youtube
|
|
git fetch --tags origin main 2>&1 || \
|
|
git fetch --tags https://gitea:3000/jimmy/t-youtube.git main 2>&1
|
|
git merge FETCH_HEAD 2>&1
|
|
|
|
- name: Build Docker image
|
|
run: |
|
|
cd /volume1/docker/t-youtube
|
|
/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
|
|
|
|
- name: Verify
|
|
run: |
|
|
sleep 3
|
|
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
|
|
echo "Container failed to start"
|
|
$D/docker logs t-youtube --tail 20
|
|
exit 1
|
|
fi
|