Skip to content

[v1.1.4] 릴리즈 (#87) #8

[v1.1.4] 릴리즈 (#87)

[v1.1.4] 릴리즈 (#87) #8

name: Backend Prod Server CD
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: JDK 17 설치
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'corretto'
- name: env 설정
run: |
echo "KAKAO_CLIENT_ID=${{ secrets.KAKAO_CLIENT_ID }}" >> .env
echo "KAKAO_CLIENT_SECRET=${{ secrets.KAKAO_CLIENT_SECRET }}" >> .env
echo "KAKAO_REDIRECT_URI=${{ secrets.KAKAO_REDIRECT_URI }}" >> .env
echo "KAKAO_API_ADMIN_KEY=${{ secrets.KAKAO_API_ADMIN_KEY }}" >> .env
echo "KAKAO_ALIM_TALK_API_HOST=${{ secrets.KAKAO_ALIM_TALK_API_HOST }}" >> .env
echo "KAKAO_ALIM_TALK_USER_ID=${{ secrets.KAKAO_ALIM_TALK_USER_ID }}" >> .env
echo "KAKAO_ALIM_TALK_PROFILE_KEY=${{ secrets.KAKAO_ALIM_TALK_PROFILE_KEY }}" >> .env
echo "SPRING_DATASOURCE_URL=${{ secrets.SPRING_DATASOURCE_URL }}" >> .env
echo "SPRING_DATASOURCE_USERNAME=${{ secrets.SPRING_DATASOURCE_USERNAME }}" >> .env
echo "SPRING_DATASOURCE_PASSWORD=${{ secrets.SPRING_DATASOURCE_PASSWORD }}" >> .env
echo "FREEBE_BASE_URL=${{ secrets.FREEBE_BASE_URL }}" >> .env
echo "JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}" >> .env
echo "AWS_REGION=${{ secrets.AWS_REGION }}" >> .env
echo "AWS_ACCESS_KEY=${{ secrets.CICD_ACCESS_KEY }}" >> .env
echo "AWS_SECRET_KEY=${{ secrets.CICD_SECRET_KEY }}" >> .env
echo "AWS_S3_DATA_BUCKET=${{ secrets.AWS_S3_DATA_BUCKET }}" >> .env
echo "AWS_S3_ORIGINAL_PATH=${{ secrets.AWS_S3_ORIGINAL_PATH }}" >> .env
echo "AWS_S3_THUMBNAIL_PATH=${{ secrets.AWS_S3_THUMBNAIL_PATH }}" >> .env
echo "AWS_S3_PHOTOGRAPHER_PATH=${{ secrets.AWS_S3_PHOTOGRAPHER_PATH }}" >> .env
echo "AWS_S3_CUSTOMER_PATH=${{ secrets.AWS_S3_CUSTOMER_PATH }}" >> .env
echo "AWS_S3_PRODUCT_PATH=${{ secrets.AWS_S3_PRODUCT_PATH }}" >> .env
echo "AWS_S3_PROFILE_PATH=${{ secrets.AWS_S3_PROFILE_PATH }}" >> .env
echo "AWS_S3_BANNER_PATH=${{ secrets.AWS_S3_BANNER_PATH }}" >> .env
echo "AWS_S3_RESERVATION_PATH=${{ secrets.AWS_S3_RESERVATION_PATH }}" >> .env
echo "NEW_RELIC_LICENSE_KEY=${{ secrets.NEW_RELIC_LICENSE_KEY }}" >> .env
echo "NEW_RELIC_APP_NAME=${{ secrets.NEW_RELIC_APP_NAME }}" >> .env
echo "AWS_CODE_DEPLOY_APPLICATION=${{ secrets.AWS_CODE_DEPLOY_APPLICATION }}" >> .env
echo "AWS_CODE_DEPLOY_GROUP=${{ secrets.AWS_CODE_DEPLOY_GROUP }}" >> .env
echo "AWS_S3_CICD_BUCKET=${{ secrets.AWS_S3_CICD_BUCKET }}" >> .env
echo "ENVIRONMENT=${{ secrets.ENVIRONMENT }}" >> .env
echo "TERMS_OF_MARKETING_TAG=${{ secrets.TERMS_OF_MARKETING_TAG }}" >> .env
- name: gradlew에 실행 권한 부여
run: chmod +x ./gradlew
- name: 프로젝트 빌드
run: ./gradlew clean bootjar -x test
- name: 압축
run: zip -r ./freebe.zip .
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.CICD_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.CICD_SECRET_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: S3에 jar 업로드(실행 파일)
run:
aws s3 cp ./build/libs/freebe-0.0.1-SNAPSHOT.jar s3://${{secrets.AWS_S3_CICD_BUCKET}}/cicdtest/freebe.jar --region ap-northeast-2
- name: S3에 zip 업로드(전체 파일)
run:
aws s3 cp freebe.zip s3://${{secrets.AWS_S3_CICD_BUCKET}}/cicdtest/freebe.zip --region ap-northeast-2
- name: Code Deploy 로 배포
run: >
aws deploy create-deployment --application-name ${{ secrets.AWS_CODE_DEPLOY_APPLICATION }}
--deployment-config-name CodeDeployDefault.AllAtOnce
--deployment-group-name ${{ secrets.AWS_CODE_DEPLOY_GROUP }}
--s3-location bucket=${{ secrets.AWS_S3_CICD_BUCKET }},bundleType=zip,key=cicdtest/freebe.zip