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