deploy-mymate #128
This file contains 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
env: | |
S3_BUCKET_NAME: mymate-s3-build | |
PROJECT_NAME: mymate-app-service | |
CODE_DEPLOY_APP_NAME: mymate-app-service #(15) | |
CODE_DEPLOY_GROUP_NAME: mymate-app-service-group | |
name: deploy-mymate # (0) GitHub Action에서 보여질 이름을 지정합니다. | |
on: | |
release: | |
types: [push] # (1) push시 자동으로 실행됩니다. | |
push: | |
branches: [develop] # (2) main 브랜치에서 동작합니다. | |
workflow_dispatch: # (3) 수동으로도 실행이 가능힙니다. | |
jobs: | |
build: | |
runs-on: ubuntu-latest # (4) 해당 스크립트를 작동할 OS 입니다. | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 # (5) 프로젝트 코드를 CheckOut합니다. | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 # (6) | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Grant execute permission for gradlew | |
run: chmod +x ./gradlew # (7) | |
shell: bash | |
- name: Build with Gradle | |
run: ./gradlew clean build -x test # (8) | |
shell: bash | |
- name: Get current time | |
uses: 1466587594/get-current-time@v2 # (9) | |
id: current-time | |
with: | |
format: YYYY-MM-DDTHH-mm-ss | |
utcOffset: "+09:00" | |
- name: Show Current Time | |
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}" # (10) | |
shell: bash | |
- name: Generate deployment package # (final) | |
run: | | |
mkdir -p before-deploy | |
cp scripts/*.sh before-deploy/ | |
cp appspec.yml before-deploy/ | |
cp build/libs/*.jar before-deploy/ | |
cd before-deploy && zip -r before-deploy * | |
cd ../ && mkdir -p deploy | |
mv before-deploy/before-deploy.zip deploy/$PROJECT_NAME.zip | |
shell: bash | |
- name: Make zip file | |
run: zip -r ./$PROJECT_NAME.zip . # (12) | |
shell: bash | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 #(13) | |
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: Upload to S3 | |
run: aws s3 cp --region ap-northeast-2 ./deploy/$PROJECT_NAME.zip s3://$S3_BUCKET_NAME/$PROJECT_NAME/$PROJECT_NAME.zip #(14) | |
- name: Code Deploy | |
run: aws deploy create-deployment --application-name $CODE_DEPLOY_APP_NAME --deployment-config-name CodeDeployDefault.AllAtOnce --deployment-group-name $CODE_DEPLOY_GROUP_NAME --s3-location bucket=$S3_BUCKET_NAME,bundleType=zip,key=$PROJECT_NAME/$PROJECT_NAME.zip #(16) | |