weather-fit CI/CD 구축 액션 플랜

inhatc-team2 모노레포 자동화 배포 파이프라인 완성하기

리전: us-east-1
1

학교 관리자에게 권한 문서 전달 (담당: 팀장)

이전에 작성된 'AWS 권한 및 OIDC 설정 요청서'를 학교 측(교수님/조교님)에 전달하고, 배포용 IAM Role ARN 발급을 기다립니다.

2

GitHub Secrets에 Role ARN 등록 (담당: 팀장)

학교로부터 arn:aws:iam::...:role/... 형태의 주소를 받으면 깃허브에 등록합니다.

  1. Asirante/weather-fit 레포지토리 접속
  2. [Settings][Secrets and variables][Actions] 이동
  3. New repository secret 클릭
  4. Name: AWS_ROLE_ARN / Value: 발급받은 ARN 주소 입력 후 저장

3

각 파트별 YAML 파일에 OIDC 인증 추가 (담당: 최혁, 고원영, 김호건)

각자 맡은 .github/workflows/ 폴더 안의 .yml 파일에 아래 2가지 내용을 반드시 추가해야 합니다.

# 1. jobs 하위에 권한(permissions) 블록 추가 (필수)
jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    steps:
      - uses: actions/checkout@v4
      
      # ... (의존성 설치, 빌드 등 기존 코드) ...

      # 2. 실제 배포(AWS CLI) 스텝 직전에 OIDC 로그인 스텝 추가
      - name: Configure AWS credentials using OIDC
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
          aws-region: us-east-1  # 팀 통일 리전 (버지니아 북부)
4

실제 배포 명령어(AWS CLI) 작성 (각 파트별)

OIDC 로그인이 완료되었으므로, 기존의 echo "Dummy Deploy..." 부분을 지우고 진짜 배포 명령어를 작성합니다.

프론트엔드 (최혁 님) — deploy-frontend.yml

- name: Deploy to S3
  run: |
    aws s3 sync frontend/dist/ s3://inhatc-team2-3-frontend --delete

백엔드 (고원영 님) — deploy-backend.yml

- name: Zip and Update Code
  run: |
    cd backend
    zip -r ../deploy.zip .
    aws lambda update-function-code \
      --function-name inhatc-team2-1-recommendAPI \
      --zip-file fileb://../deploy.zip

데이터 파이프라인 (김호건 님) — deploy-data-pipeline.yml

- name: Zip and Update Code
  run: |
    cd data_pipeline
    zip -r ../deploy.zip .
    aws lambda update-function-code \
      --function-name inhatc-team2-5-dataAPI \
      --zip-file fileb://../deploy.zip

실시간 파이프라인 (김호건 님) — deploy-real-time.yml

- name: Zip and Update Code
  run: |
    cd real_time
    zip -r ../deploy.zip .
    aws lambda update-function-code \
      --function-name inhatc-team2-5-real-time-dataAPI \
      --zip-file fileb://../deploy.zip

5

PR 생성 및 자동 배포 테스트 (공통)

PR 및 병합 순서

  • 1. feature/*develop PR 생성
  • 2. 최소 1명의 팀원 승인(Approve) 대기
  • 3. 반드시 Squash and Merge로 병합
  • 4. 배포 완료 후 developmain 최종 통합

Actions 체크리스트

  • GitHub Actions 탭에서 작업 성공 확인
  • 수정한 폴더의 workflow만 실행되었는지 확인 (path filter)
  • 실패 시 로그를 확인하고 main 직접 Push 금지

기억하세요! 각 워크플로우에는 path filter가 설정되어 있습니다. backend/를 수정하면 backend workflow만, real_time/을 수정하면 real-time workflow만 실행됩니다.

문서 포털로 돌아가기

협업 가이드라인을 준수하여 안정적인 배포 환경을 유지합시다.