Files
soroushasadi/.gitea/workflows/deploy.yml
T
soroush.asadi 20e14d3a28
deploy / deploy (push) Failing after 7m35s
Fix base image: use mirror direct path, switch to node:20-alpine
Mirror exposes images as mirror.soroushasadi.com/<image> directly,
not via /repository/docker-group/ path. Also node:20-alpine is already
cached on the server; node:20-slim was never pulled.

Dockerfile: apk instead of apt-get, addgroup/adduser instead of
groupadd/useradd (Alpine BusyBox compatibility).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 14:46:05 +03:30

76 lines
1.8 KiB
YAML

name: deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: self-hosted
env:
DOCKER_BUILDKIT: 1
COMPOSE_DOCKER_CLI_BUILD: 1
steps:
- name: Checkout
env:
TOKEN: ${{ github.token }}
REF: ${{ github.ref }}
GIT_SSL_NO_VERIFY: "true"
run: |
git init
git remote remove origin 2>/dev/null || true
git remote add origin "${{ github.server_url }}/${{ github.repository }}.git"
git config http.extraheader "Authorization: Bearer ${TOKEN}"
git fetch --depth=1 origin "${REF}"
git checkout FETCH_HEAD
- name: Create Environment File
run: |
cat > .env << EOF
ADMIN_PASSWORD=${{ secrets.ADMIN_PASSWORD }}
ADMIN_SESSION_SECRET=${{ secrets.ADMIN_SESSION_SECRET }}
RESEND_API_KEY=${{ secrets.RESEND_API_KEY }}
CONTACT_INBOX=${{ secrets.CONTACT_INBOX }}
CONTACT_FROM=${{ secrets.CONTACT_FROM }}
NPM_TOKEN=${{ secrets.NPM_TOKEN }}
EOF
- name: Build Container
env:
NODE_IMAGE: mirror.soroushasadi.com/node:20-alpine
run: |
docker compose build
- name: Deploy
run: |
docker compose up -d --remove-orphans
- name: Wait For Health Check
run: |
for i in $(seq 1 30); do
STATUS=$(docker inspect \
--format='{{.State.Health.Status}}' \
soroushasadi-site 2>/dev/null)
echo "Status: $STATUS"
if [ "$STATUS" = "healthy" ]; then
echo "Deployment successful"
exit 0
fi
sleep 5
done
docker logs soroushasadi-site --tail 100
exit 1
- name: Cleanup
if: success()
run: |
docker image prune -f