Skip to content

Commit 01e86b2

Browse files
authored
Refactor/cicd (#54)
* refactor: cicd 파일 수정 * refactor: cicd 파일 수정 * refactor: cicd 파일 수정
1 parent a7eaf30 commit 01e86b2

1 file changed

Lines changed: 25 additions & 12 deletions

File tree

.github/workflows/ci-cd.yml

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ jobs:
4242
with:
4343
script: |
4444
const fs = require('fs');
45-
// 템플릿 파일이 있는 경로를 정확히 지정해야 합니다.
46-
// 예: .github/pr_templates/for_develop.md
45+
# 템플릿 파일이 있는 경로를 정확히 지정해야 합니다.
46+
# 예: .github/pr_templates/for_develop.md
4747
const template = fs.readFileSync('.github/pr_templates/for_develop.md', 'utf8');
4848
github.rest.issues.createComment({
4949
owner: context.repo.owner,
@@ -125,7 +125,8 @@ jobs:
125125
run: echo "success=true" >> $GITHUB_OUTPUT
126126

127127

128-
# 이하 배포 관련 Job들은 'build' Job의 최종 성공 여부에 따라 실행됩니다.
128+
129+
# 이하 배포 관련 Job들은 'build' Job의 최종 성공 여부에 따라 실행됩니다.
129130
check-ec2:
130131
runs-on: ubuntu-latest
131132
needs: build
@@ -146,6 +147,7 @@ jobs:
146147
continue-on-error: true
147148

148149

150+
149151
# Docker 이미지 빌드 및 ECR 푸시
150152
build-and-push-image:
151153
runs-on: ubuntu-latest
@@ -186,6 +188,9 @@ jobs:
186188
needs: [build, check-ec2, build-and-push-image]
187189
if: github.event_name == 'push' && needs.build-and-push-image.outputs.image-pushed == 'true'
188190
steps:
191+
- name: Checkout Source Code
192+
uses: actions/checkout@v4
193+
189194
- name: Configure AWS credentials using OIDC
190195
uses: aws-actions/configure-aws-credentials@v4
191196
with:
@@ -195,7 +200,22 @@ jobs:
195200
id: login-ecr
196201
uses: aws-actions/amazon-ecr-login@v2
197202

198-
# === [추가된 부분] 필요한 파일들을 EC2로 복사 ===
203+
# === 필요한 파일들을 EC2로 복사 (scp-action 사용) ===
204+
- name: Create Firebase Service Account Key File
205+
env:
206+
FIREBASE_KEY_JSON: ${{ secrets.FIREBASE_KEY_JSON }}
207+
run: echo "$FIREBASE_KEY_JSON" > serviceAccountKey.json
208+
209+
- name: Create .env File
210+
run: |
211+
echo "R2_ENDPOINT=${{ secrets.R2_ENDPOINT }}" > ./.env
212+
echo "R2_BUCKET=${{ secrets.R2_BUCKET }}" >> ./.env
213+
echo "R2_ACCESS_KEY=${{ secrets.R2_ACCESS_KEY }}" >> ./.env
214+
echo "R2_SECRET_KEY=${{ secrets.R2_SECRET_KEY }}" >> ./.env
215+
echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> ./.env
216+
echo "FASTAPI_URL=${{ secrets.FASTAPI_URL }}" >> ./.env
217+
echo "API_TOKEN=${{ secrets.API_TOKEN }}" >> ./.env
218+
199219
- name: Transfer necessary files to EC2
200220
uses: appleboy/scp-action@master
201221
with:
@@ -204,23 +224,16 @@ jobs:
204224
key: ${{ secrets.EC2_SSH_KEY }}
205225
source: "docker-compose.yml,.env,serviceAccountKey.json"
206226
target: "/home/${{ secrets.EC2_USER }}/app"
207-
# ==================================================
208227

228+
# === EC2 배포 (ssh-action 사용) ===
209229
- name: Deploy to EC2 instance
210230
uses: appleboy/ssh-action@master
211231
with:
212232
host: ${{ secrets.EC2_HOST }}
213233
username: ${{ secrets.EC2_USER }}
214234
key: ${{ secrets.EC2_SSH_KEY }}
215235
script: |
216-
# EC2 인스턴스의 작업 디렉토리로 이동
217236
cd /home/${{ secrets.EC2_USER }}/app
218-
219-
# 아래 환경 변수 및 키 파일 생성 부분은 이제 필요 없습니다.
220-
# echo "${{ secrets.FIREBASE_KEY_JSON }}" > ./serviceAccountKey.json
221-
# echo "DB_URL=${{ secrets.DB_URL }}" > ./.env
222-
# ... (나머지 환경 변수 부분 삭제) ...
223-
224237
# AWS ECR 로그인
225238
aws ecr get-login-password --region ${{ secrets.AWS_REGION }} | docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }}
226239

0 commit comments

Comments
 (0)