fix: 계좌번호 복사 붙여넣기 기능이 작동하지 않는 버그 해결 (#1017) #12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: frontend-prod-deploy | |
on: | |
push: | |
branches: ["main"] | |
paths: | |
- "client/**" | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
working-directory: ./client | |
steps: | |
# 1. Git 리포지토리 체크아웃 | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# 2. Node.js 20.15.1 version으로 셋팅 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20.15.1" | |
# 노드모듈스 캐싱 | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
# 웹팩 캐싱(패키지락과 프로드웹팩컨픽이 바뀌지 않으면 캐시 사용) | |
- name: Cache Webpack | |
uses: actions/cache@v4 | |
with: | |
path: node_modules/.cache | |
key: ${{ runner.os }}-webpack-${{ hashFiles('package-lock.json', 'webpack.prod.mjs') }} | |
restore-keys: | | |
${{ runner.os }}-webpack- | |
# 3. 의존성 설치 | |
- name: Install Dependencies | |
run: npm install | |
# 4. 환경변수 파일 github secret에서 가져와서 생성 | |
- name: Create environments from github secrets | |
run: | | |
echo "API_BASE_URL=${{ secrets.API_BASE_URL }}" >> .env.prod | |
echo "AMPLITUDE_KEY=${{ secrets.AMPLITUDE_KEY }}" >> .env.prod | |
echo "KAKAO_JAVASCRIPT_KEY=${{ secrets.KAKAO_JAVASCRIPT_KEY }}" >> .env.prod | |
echo "IMAGE_URL=${{ secrets.IMAGE_URL }}" >> .env.prod | |
echo "KAKAO_REDIRECT_URI=${{ secrets.KAKAO_REDIRECT_URI }}" >> .env.prod | |
echo "SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}" >> .env.prod | |
# 5. Prod 환경으로 빌드 | |
- name: Build for Prod environment | |
run: npm run build | |
# 6. AWS 인증 설정 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v3 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
# 7. S3에 빌드 결과 업로드 | |
- name: Upload build results to S3 | |
run: aws s3 sync ./dist s3://${{ secrets.S3_BUCKET_NAME }}/prod/ --delete | |
# 8. CloudFront 캐시 무효화 | |
- name: Invalidate CloudFront Cache | |
run: | | |
aws cloudfront create-invalidation \ | |
--distribution-id ${{ secrets.PROD_CLOUDFRONT_DISTRIBUTION_ID }} \ | |
--paths "/*" |