Files
soroushasadi/.gitea/workflows/deploy.yml
T
soroush.asadi 13241612fe Fix mirror hostname and protocol (soroushasad.com, HTTP)
All references updated from mirror.soroushasadi.com (https) to
mirror.soroushasad.com (http):
  - .npmrc: registry uses http://
  - Dockerfile: syntax frontend + NODE_IMAGE ARG + npm auth line
  - docker-compose.yml: NODE_IMAGE default
  - deploy.yml: docker login/logout + NODE_IMAGE env
  - ci.yml: container image + NODE_IMAGE build-arg + npm auth line

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

76 lines
1.9 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.soroushasad.com/repository/docker-group/node:20-slim
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