@@ -90,12 +90,12 @@ jobs:
9090 TARGETS=($CHANGED)
9191 fi
9292 echo "Deploy targets: ${TARGETS[*]}"
93- for svc in "${TARGETS[@]}"; do
94- docker build -t namgyu967/$svc:${TAG} -f $svc/Dockerfile .
95- docker push namgyu967/$svc:${TAG}
96- docker tag namgyu967/$svc:${TAG} namgyu967/$svc:latest
97- docker push namgyu967/$svc:latest
98- done
93+ # for svc in "${TARGETS[@]}"; do
94+ # docker build -t namgyu967/$svc:${TAG} -f $svc/Dockerfile .
95+ # docker push namgyu967/$svc:${TAG}
96+ # docker tag namgyu967/$svc:${TAG} namgyu967/$svc:latest
97+ # docker push namgyu967/$svc:latest
98+ # done
9999 echo "TARGETS=${TARGETS[*]}" >> $GITHUB_ENV
100100 - name : EC2에 Blue-Green 및 서비스 배포
101101 uses : appleboy/ssh-action@master
@@ -105,10 +105,12 @@ jobs:
105105 key : ${{ secrets.EC2_SSH_KEY }}
106106 port : 22
107107 protocol : tcp
108+ timeout : 30s
109+ command_timeout : 10m
108110 sync : true
109- debug : true
110111 capture_stdout : true
111112 curl_insecure : false
113+
112114 envs : |
113115 TAG=${{ env.TAG }}
114116 SERVICES=${{ env.SERVICES }}
@@ -117,7 +119,11 @@ jobs:
117119 set -e
118120 cd ~/timebank
119121 source .env-tag
122+
123+ # 0) nginx 보장
120124 docker-compose up -d nginx
125+
126+ # 1) Blue-Green gateway
121127 if docker-compose ps | grep -q gateway-blue; then
122128 NEW=green; OLD=blue
123129 else
@@ -127,21 +133,28 @@ jobs:
127133 docker-compose up -d gateway-$NEW
128134 sed -i "s/server gateway-$OLD:8080;/server gateway-$NEW:8080;/" nginx-conf/gw.conf
129135 docker exec nginx nginx -s reload
130- if [ "${CHANGED}" = "ALL" ] || [ -z "${CHANGED}" ]; then
131- IFS=' ' read -r -a targets <<< "${SERVICES}"
136+
137+ # 2) deploy 대상 계산
138+ if [ "$CHANGED" = "ALL" ] || [ -z "$CHANGED" ]; then
139+ IFS=' ' read -r -a targets <<< "$SERVICES"
132140 else
133- IFS=' ' read -r -a targets <<< "${ CHANGED} "
141+ IFS=' ' read -r -a targets <<< "$CHANGED"
134142 fi
143+
135144 echo "=== DEBUG:Final deploy targets ==="
136- for svc in "${targets[@ ]}"; do
145+ for svc in "${targets[* ]}"; do
137146 echo " - $svc"
138147 done
148+
149+ # 3) 나머지 서비스 순차 배포
139150 for svc in "${targets[*]}"; do
140151 [ "$svc" = "gateway-service" ] && continue
141152 echo "Deploying $svc..."
142153 docker-compose pull $svc
143154 docker-compose up -d $svc
144155 done
156+
157+
145158 - name : 헬스체크 및 결과 수집
146159 id : health
147160 shell : bash
0 commit comments