8181 runs-on : ubuntu-latest
8282
8383 steps :
84-
8584 - name : Deploy to GCP Instance
8685 uses : appleboy/ssh-action@v1.1.0
8786 with :
@@ -92,29 +91,91 @@ jobs:
9291 script : |
9392 cd $HOME/project
9493
94+ echo "Updating .env file with latest Secret Manager values..."
95+
96+ # .env ํ์ผ ๋ฐฑ์
97+ cp .env .env.backup.$(date +%Y%m%d_%H%M%S)
98+
99+ # Secret Manager ๊ด๋ จ ๋ผ์ธ๋ค ์ ๊ฑฐ
100+ sed -i '/^DB_URL=/d' .env
101+ sed -i '/^JWT_SECRET=/d' .env
102+ sed -i '/^GOOGLE_CLIENT_ID=/d' .env
103+ sed -i '/^GOOGLE_CLIENT_SECRET=/d' .env
104+ sed -i '/^GOOGLE_API_KEY=/d' .env
105+ sed -i '/^GOOGLE_CALENDAR_REDIRECT_URI=/d' .env
106+ sed -i '/^OAUTH_REDIRECT_URI=/d' .env
107+ sed -i '/^KAKAO_CLIENT_ID=/d' .env
108+ sed -i '/^KAKAO_CLIENT_SECRET=/d' .env
109+ sed -i '/^KAKAO_API_KEY=/d' .env
110+ sed -i '/^ZOOM_ACCOUNT_ID=/d' .env
111+ sed -i '/^ZOOM_CLIENT_ID=/d' .env
112+ sed -i '/^ZOOM_CLIENT_SECRET=/d' .env
113+ sed -i '/^GCP_IP=/d' .env
114+ sed -i '/^FRONT_DOMAIN_A=/d' .env
115+ sed -i '/^FRONT_DOMAIN_B=/d' .env
116+ sed -i '/^FRONT_CALLBACK=/d' .env
117+ sed -i '/^REDIS_HOST=/d' .env
118+ sed -i '/^REDIS_PORT=/d' .env
119+
120+ # Secret Manager์์ ์ต์ ๊ฐ๋ค์ ๊ฐ์ ธ์์ .env์ ์ถ๊ฐ
121+ echo "" >> .env
122+ echo "DB_URL=$(gcloud secrets versions access latest --secret='db-url')" >> .env
123+ echo "JWT_SECRET=$(gcloud secrets versions access latest --secret='jwt-secret')" >> .env
124+ echo "GOOGLE_CLIENT_ID=$(gcloud secrets versions access latest --secret='google-client-id')" >> .env
125+ echo "GOOGLE_CLIENT_SECRET=$(gcloud secrets versions access latest --secret='google-client-secret')" >> .env
126+ echo "GOOGLE_API_KEY=$(gcloud secrets versions access latest --secret='google-api-key')" >> .env
127+ echo "GOOGLE_CALENDAR_REDIRECT_URI=$(gcloud secrets versions access latest --secret='google-calendar-redirect-uri')" >> .env
128+ echo "OAUTH_REDIRECT_URI=$(gcloud secrets versions access latest --secret='oauth-redirect-uri')" >> .env
129+ echo "KAKAO_CLIENT_ID=$(gcloud secrets versions access latest --secret='kakao-client-id')" >> .env
130+ echo "KAKAO_CLIENT_SECRET=$(gcloud secrets versions access latest --secret='kakao-client-secret')" >> .env
131+ echo "KAKAO_API_KEY=$(gcloud secrets versions access latest --secret='kakao-api-key')" >> .env
132+ echo "ZOOM_ACCOUNT_ID=$(gcloud secrets versions access latest --secret='zoom-account-id')" >> .env
133+ echo "ZOOM_CLIENT_ID=$(gcloud secrets versions access latest --secret='zoom-client-id')" >> .env
134+ echo "ZOOM_CLIENT_SECRET=$(gcloud secrets versions access latest --secret='zoom-client-secret')" >> .env
135+ echo "GCP_IP=$(gcloud secrets versions access latest --secret='gcp-ip')" >> .env
136+ echo "FRONT_DOMAIN_A=$(gcloud secrets versions access latest --secret='front-domain-A')" >> .env
137+ echo "FRONT_DOMAIN_B=$(gcloud secrets versions access latest --secret='front-domain-B')" >> .env
138+ echo "FRONT_CALLBACK=$(gcloud secrets versions access latest --secret='front-callback')" >> .env
139+ echo "REDIS_HOST=$(gcloud secrets versions access latest --secret='redis-host')" >> .env
140+ echo "REDIS_PORT=$(gcloud secrets versions access latest --secret='redis-port')" >> .env
141+
142+ echo "Updated Secret Manager Values"
143+
144+ echo "Stopping existing containers..."
95145 sudo docker-compose down || true
96146
147+ echo "Cleaning up old images..."
97148 sudo docker image prune -f
98- sudo docker rmi ${{ secrets.DOCKER_USERNAME }}/ittaeok-gcp :latest || true
149+ sudo docker rmi ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_NAME }} :latest || true
99150 sudo docker system prune -f || true
100151
101- sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ittaeok-gcp:latest --disable-content-trust
152+ echo "Pulling latest image..."
153+ sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_NAME }}:latest --disable-content-trust
102154
155+ echo "Starting containers with updated configuration..."
103156 sudo docker-compose up -d
104157
158+ echo "Container status:"
105159 sudo docker-compose ps
106160
107- sleep 10
108- sudo docker-compose logs --tail=20
161+ echo "Waiting for application to start..."
162+ sleep 15
163+
164+ echo "Recent logs:"
165+ sudo docker-compose logs --tail=30
109166
110167 echo "=== Deployed Image Info ==="
111- sudo docker images | grep ittaeok-gcp
168+ sudo docker images | grep ${{ secrets.DOCKER_IMAGE_NAME }}
112169
113170 echo "=== Container Info ==="
114171 sudo docker ps | grep ittaeok
172+
173+ echo "=== Environment Variables Verification ==="
174+ sudo docker exec ittaeok env | grep -E "(DB_URL|JWT_SECRET|REDIS_HOST)" | head -3
115175
116176 - name : Deployment completed
117177 run : |
118178 echo "Deployment completed successfully"
119179 echo "Deployed commit: ${{ github.sha }}"
120- echo "Repository: ${{ github.repository }}"
180+ echo "Repository: ${{ github.repository }}"
181+ echo "Secret Manager values automatically updated"
0 commit comments