From 837e900dd10da45ad023806238dd963f1b349bc4 Mon Sep 17 00:00:00 2001 From: juwoong kim Date: Thu, 18 Jul 2024 19:09:03 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20start.sh=20=EB=B9=8C=EB=93=9C=EB=AA=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 81 +++++++++++++++++------------------- appspec.yml | 18 ++++---- scripts/start.sh | 2 +- 3 files changed, 49 insertions(+), 52 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 15ff21b..43edd0d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,10 +1,11 @@ -name: Test +name: Deploy on: pull_request: branches: [ "main" ] push: branches: [ "main" ] + env: # 버킷에 저장할 폴더 이름 PROJECT_NAME: ledger @@ -15,56 +16,43 @@ env: # CodeDeploy의 배포그룹 이름 DEPLOYMENT_GROUP_NAME: newdeal-ledger-deployment-group - jobs: - build: - # 실행 환경 설정 + build-and-deploy: runs-on: ubuntu-latest - # 차례대로 실행 steps: - - uses: actions/checkout@v2 - - - name: Set up JDK 17 - uses: actions/setup-java@v1 - with: - java-version: 17 + - uses: actions/checkout@v2 - - name: Grant execute permission for gradlew - run: chmod +x gradlew + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 - # Gradle build (Test 제외) - - name: Build with Gradle - run: ./gradlew clean build -x test + - name: Grant execute permission for gradlew + run: chmod +x gradlew - # 압축 파일 만들기 - - name: Make Zip File - run: zip -qq -r ./$GITHUB_SHA.zip . - shell: bash + - name: Build with Gradle + run: ./gradlew clean build -x test - # AWS 인증 - - 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 + - name: Make Zip File + run: zip -qq -r $GITHUB_SHA.zip . -x '*.git*' -x 'build/*' -x 'node_modules/*' - # S3 버킷으로 파일을 업로드 - - name: Upload to S3 - run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://$BUCKET_NAME/$PROJECT_NAME/$GITHUB_SHA.zip + - 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 - # S3 버킷에 업로드 된 파일을 대상으로 CodeDeploy에서 배포 요청 - - name: Code Deploy - run: aws deploy create-deployment --application-name $CODE_DEPLOY_APP_NAME --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name $DEPLOYMENT_GROUP_NAME --s3-location bucket=$BUCKET_NAME,bundleType=zip,key=$PROJECT_NAME/$GITHUB_SHA.zip + - name: Upload to S3 + run: aws s3 cp --region ap-northeast-2 $GITHUB_SHA.zip s3://$BUCKET_NAME/$PROJECT_NAME/$GITHUB_SHA.zip - deploy: - runs-on: ubuntu-latest - needs: build + - name: Code Deploy + run: aws deploy create-deployment --application-name $CODE_DEPLOY_APP_NAME --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name $DEPLOYMENT_GROUP_NAME --s3-location bucket=$BUCKET_NAME,bundleType=zip,key=$PROJECT_NAME/$GITHUB_SHA.zip - steps: - - name: Checkout code - uses: actions/checkout@v2 + - name: Wait for deployment to finish + run: | + aws deploy wait deployment-successful --deployment-id $(aws deploy list-deployments --application-name $CODE_DEPLOY_APP_NAME --deployment-group-name $DEPLOYMENT_GROUP_NAME --query "deployments[0]" --output text) - name: Set up environment variables run: | @@ -72,10 +60,19 @@ jobs: echo "DEV_DB_USER=${{ secrets.DEV_DB_USER }}" >> $GITHUB_ENV echo "DEV_DB_PASSWORD=${{ secrets.DEV_DB_PASSWORD }}" >> $GITHUB_ENV - - name: Deploy application + - name: Stop application + run: | + chmod +x /home/ubuntu/deploy/scripts/stop.sh + /home/ubuntu/deploy/scripts/stop.sh + env: + DEV_DB_URL: ${{ secrets.DEV_DB_URL }} + DEV_DB_USER: ${{ secrets.DEV_DB_USER }} + DEV_DB_PASSWORD: ${{ secrets.DEV_DB_PASSWORD }} + + - name: Start application run: | - chmod +x ./scripts/start.sh - ./scripts/start.sh + chmod +x /home/ubuntu/deploy/scripts/start.sh + /home/ubuntu/deploy/scripts/start.sh env: DEV_DB_URL: ${{ secrets.DEV_DB_URL }} DEV_DB_USER: ${{ secrets.DEV_DB_USER }} diff --git a/appspec.yml b/appspec.yml index 04a77a4..2de5d58 100644 --- a/appspec.yml +++ b/appspec.yml @@ -12,12 +12,12 @@ permissions: owner: ubuntu group: ubuntu -hooks: - AfterInstall: - - location: scripts/stop.sh - timeout: 60 - runas: ubuntu - ApplicationStart: - - location: scripts/start.sh - timeout: 60 - runas: ubuntu +#hooks: +# AfterInstall: +# - location: scripts/stop.sh +# timeout: 60 +# runas: ubuntu +# ApplicationStart: +# - location: scripts/start.sh +# timeout: 60 +# runas: ubuntu diff --git a/scripts/start.sh b/scripts/start.sh index 6ef8ca0..7bf6cb7 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,7 +1,7 @@ # start.sh PROJECT_ROOT="/home/ubuntu/deploy" -JAR_FILE="$PROJECT_ROOT/server-0.0.1-SNAPSHOT.jar" +JAR_FILE="$PROJECT_ROOT/ledger-0.0.1-SNAPSHOT.jar" APP_LOG="$PROJECT_ROOT/application.log" ERROR_LOG="$PROJECT_ROOT/error.log"