Skip to content

Update: bug fix

Update: bug fix #114

Workflow file for this run

# 1 워크플로의 이름 지정
name: CI
# 2 워크플로가 시작될 조건 지정
on:
push:
branches: [ main ]
env:
RESOURCE_PATH: backend/dguonoff/
jobs:
build:
runs-on: ubuntu-22.04 # 3 실행 환경 지정
#4 실행스텝지정
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Generate Envirvonment Variables File for Production
run: |
echo "DB_DOMAIN=$DB_DOMAIN" >> .env
echo "DB_PORT=$DB_PORT" >> .env
echo "DB_NAME=$DB_NAME" >> .env
echo "DB_USERNAME=$DB_USERNAME" >> .env
echo "DB_PASSWORD=$DB_PASSWORD" >> .env
echo "DB_DDL_MODE=$DB_DDL_MODE" >> .env
echo "APP_SERVER_PORT=$APP_SERVER_PORT" >> .env
echo "APP_SERVER_ADDRESS=$APP_SERVER_ADDRESS" >> .env
echo "JWT_SECRET_KEY=$JWT_SECRET_KEY" >> .env
echo "JWT_EXPIRATION_MILLISECOND=$JWT_EXPIRATION_MILLISECOND" >> .env
echo "JWT_TOKEN_PREFIX=$JWT_TOKEN_PREFIX" >> .env
echo "JWT_TOKEN_HEADER=$JWT_TOKEN_HEADER" >> .env
echo "MAIL_HOST=$MAIL_HOST" >> .env
echo "MAIL_PORT=$MAIL_PORT" >> .env
echo "MAIL_USERNAME=$MAIL_USERNAME" >> .env
echo "MAIL_PASSWORD=$MAIL_PASSWORD" >> .env
working-directory: backend/dguonoff
env:
DB_DOMAIN: ${{ secrets.DB_DOMAIN }}
DB_PORT: ${{ secrets.DB_PORT }}
DB_NAME: ${{ secrets.DB_NAME }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_DDL_MODE: ${{ secrets.DB_DDL_MODE }}
APP_SERVER_PORT: ${{ secrets.APP_SERVER_PORT }}
APP_SERVER_ADDRESS: ${{ secrets.APP_SERVER_ADDRESS }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
JWT_EXPIRATION_MILLISECOND: ${{ secrets.JWT_EXPIRATION_MILLISECOND }}
JWT_TOKEN_PREFIX: ${{ secrets.JWT_TOKEN_PREFIX }}
JWT_TOKEN_HEADER: ${{ secrets.JWT_TOKEN_HEADER }}
MAIL_HOST: ${{secrets.MAIL_HOST}}
MAIL_PORT: ${{secrets.MAIL_PORT}}
MAIL_USERNAME: ${{secrets.MAIL_USERNAME}}
MAIL_PASSWORD: ${{secrets.MAIL_PASSWORD}}
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: backend/dguonoff
- name: Build with Gradle
run: ./gradlew clean build -x test
working-directory: backend/dguonoff
# (4) AWS인증 (IAM사용자 Access Key, Secret Key활용)
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
# (5)빌드 결과물을 S3버킷에 업로드
- name: Upload to AWS S3
run: |
aws deploy push --application-name ${{ secrets.CODE_DEPLOY_APPLICATION_NAME }} --s3-location s3://${{secrets.S3_BUCKET_NAME}}/$GITHUB_SHA.zip --source .
working-directory: backend/dguonoff
# (6) S3버킷에 있는 파일을 대상으로 CodeDeploy실행
- name: Deploy to AWS EC2 from S3
run: |
aws deploy create-deployment --application-name ${{ secrets.CODE_DEPLOY_APPLICATION_NAME }} --deployment-config-name CodeDeployDefault.AllAtOnce \
--deployment-group-name ${{ secrets.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} --s3-location bucket=${{secrets.S3_BUCKET_NAME}},key=$GITHUB_SHA.zip,bundleType=zip