Files
Momento/.gitea/workflows/deploy.yaml
sepehr 5bf2d7b983
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 4s
ci: check http://192.168.1.190:3000 from runner, fix healthcheck node http
Made-with: Cursor
2026-04-25 21:51:41 +02:00

57 lines
1.6 KiB
YAML

name: Deploy to Production
on:
push:
branches:
- main
jobs:
deploy:
name: Build and Deploy
runs-on: ubuntu-24.04
steps:
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H 192.168.1.190 >> ~/.ssh/known_hosts
- name: Deploy via SSH
run: |
ssh root@192.168.1.190 << 'ENDSSH'
set -e
cd /opt/memento
echo "=== Git pull ==="
git config --global --add safe.directory /opt/memento
git pull origin main
echo "=== Building ==="
docker compose build memento-note
echo "=== Starting ==="
docker compose up -d --remove-orphans
docker compose ps
ENDSSH
- name: Wait for app to be healthy
run: |
echo "Waiting up to 180s for http://192.168.1.190:3000 ..."
for i in $(seq 1 36); do
CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 http://192.168.1.190:3000/ || echo "000")
if [ "$CODE" != "000" ] && [ "$CODE" -lt 500 ]; then
echo "OK - app responded (HTTP $CODE) after $((i * 5))s"
exit 0
fi
echo " [$((i * 5))s] HTTP $CODE"
sleep 5
done
echo "Timeout! Derniers logs :"
ssh root@192.168.1.190 "docker logs memento-web --tail=50"
exit 1
- name: Cleanup
if: always()
run: ssh root@192.168.1.190 "docker image prune -f" || true