From 3deb51411df63fdcc8c2100c26127646ec107da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 01:58:52 +0900 Subject: [PATCH] chore: create blank.yml (#27) --- .github/workflows/blank.yml | 76 +++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/blank.yml diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml new file mode 100644 index 0000000..9b4d745 --- /dev/null +++ b/.github/workflows/blank.yml @@ -0,0 +1,76 @@ +# This is a basic workflow to help you get started with Actions + +name: Java CI with Gradle & Deploy to EC2 + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "develop" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + AWS_REGION: ap-northeast-2 + S3_BUCKET_NAME: photolab-github-actions-s3-bucket + CODE_DEPLOY_APPLICATION_NAME: photolab-codedeploy-app + CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: photolab-codedeploy-deployment-group + +permissions: + contents: read + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + environment: production + + # 아래의 flow들이 차례대로 실행됩니다. + steps: + # 1) 기본 체크아웃 + - name: Checkout + uses: actions/checkout@v3 + + # 2) JDK 17 셋팅 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + # 3) gradlew 권한 설정 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + working-directory: ${{ env.working-directory }} + + # 4) gradle 빌드 + - name: Build with Gradle + run: ./gradlew clean build + working-directory: ${{ env.working-directory }} + + # 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: ${{ env.AWS_REGION }} + + # AWS S3에 업로드 + - name: Upload to AWS S3 + run: | + aws deploy push \ + --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ + --ignore-hidden-files \ + --s3-location s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip \ + --source . + + # AWS EC2에 Deploy + - name: Deploy to AWS EC2 from S3 + run: | + aws deploy create-deployment \ + --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ + --deployment-config-name CodeDeployDefault.AllAtOnce \ + --deployment-group-name ${{ env.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} \ + --s3-location bucket=$S3_BUCKET_NAME,key=$GITHUB_SHA.zip,bundleType=zip