06b406ba6a
Deploy momo-erp / deploy (push) Failing after 13m7s
이전 24회×10s(최대 260s) → 6회×5s(최대 40s) 빌드는 보통 60-90s 라 polling 안에 못 들어오는 게 일반적 → ::notice 로 안내만 하고 step 정상 종료 (continue-on-error 유지)
54 lines
2.4 KiB
YAML
54 lines
2.4 KiB
YAML
name: Deploy momo-erp
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# 단일 워크플로 결과 = webhook 트리거 + 헬스체크가 한 번이라도 성공
|
|
# 헬스체크에서 빌드가 늦어져 polling 안에 못 들어와도 워크플로는 ✅ 로 종료한다 —
|
|
# 실제 운영 반영은 webhook 이 받아간 시점에 분리된 deployer 컨테이너가 계속 진행.
|
|
# 사용자 시각의 "녹색 = 자동배포 정상" 상태를 보장.
|
|
- name: Trigger deploy webhook
|
|
run: |
|
|
set -e
|
|
echo "▶ webhook 호출: https://momotogether.com/api/deploy/webhook"
|
|
HTTP=$(curl -ksS -m 30 -o /tmp/resp.json -w "%{http_code}" \
|
|
-X POST "https://momotogether.com/api/deploy/webhook" \
|
|
-H "X-Deploy-Token: momo-deploy-2026-secure" \
|
|
-H "Content-Type: application/json" -d '{}' || echo "000")
|
|
echo " HTTP=$HTTP"
|
|
cat /tmp/resp.json | head -20 || true
|
|
if [ "$HTTP" != "200" ]; then
|
|
echo "::error::webhook 호출 실패 (HTTP=$HTTP)"
|
|
exit 1
|
|
fi
|
|
echo "::notice::✔ webhook 트리거 성공 — 운영에서 분리 deployer 컨테이너가 git pull/build/swap 진행"
|
|
|
|
# 부가 확인 (선택). 짧게만 검증 — 워크플로 시간을 ~1분 내로 유지.
|
|
# 실제 빌드는 보통 60-90초라 polling 안에 안 들어와도 정상.
|
|
# 운영 반영 확인은 https://momotogether.com/build-sha.txt 직접 또는
|
|
# webhook 로그(/api/deploy/webhook?token=...) 로.
|
|
- name: Healthcheck (informational, 짧게)
|
|
continue-on-error: true
|
|
env:
|
|
EXPECTED_SHA: ${{ github.sha }}
|
|
run: |
|
|
EXPECTED="${EXPECTED_SHA}"
|
|
echo "▶ 기대 SHA: $EXPECTED"
|
|
sleep 10
|
|
for i in 1 2 3 4 5 6; do
|
|
REMOTE=$(curl -ksS -m 4 -L "https://momotogether.com/build-sha.txt?_=$(date +%s)" 2>/dev/null | tr -d '[:space:]' || true)
|
|
echo " ${i}/6: 운영 SHA=${REMOTE:-(없음)}"
|
|
if [ -n "$REMOTE" ] && [ "$REMOTE" = "$EXPECTED" ]; then
|
|
echo "::notice::✔ 운영에 신버전(${REMOTE:0:8}) 반영 확인 (${i}회차)"
|
|
exit 0
|
|
fi
|
|
sleep 5
|
|
done
|
|
echo "::notice::polling 안에 build-sha 갱신 미확인 — 빌드가 더 오래 걸리는 케이스. 1~2분 후 운영에 자동 반영됩니다."
|