Merge branch 'master' into release #9
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
name: Deploy to Amazon EC2 | |
# 해당 branch에서 push가 될 때마다 workflow가 동작한다. | |
# 배포 브랜치 만들어지면 수정 예정 | |
on: | |
push: | |
branches: | |
- release | |
env: | |
AWS_REGION: ap-northeast-2 | |
S3_BUCKET_NAME: todaysbook | |
CODE_DEPLOY_APPLICATION_NAME: github-actions | |
CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: todaysbook-github-actions-group | |
#워크 플로우가 깃 레포에 대한 권한을 읽기 만 가능하게 설정 | |
permissions: | |
contents: read | |
#워크 플로우에서 할 작업을 정의한다. | |
jobs: | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
#깃허브에서 제공하는 checkout 액션 사용 | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# JDK 17 설정 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
# application.properties는 외부에 노출되면 안되므로 Actions가 빌드될때마다 해당 Repository의 Secret 설정을 | |
# 이용하여서 설정 파일을 생성해줌 (github에 commit 되는게 아님!) | |
- name: Make application properties | |
run: | | |
touch ./src/main/resources/application.properties | |
echo "${{secrets.APPLICATION}}" > ./src/main/resources/application.properties | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: application.properties | |
path: ./src/main/resources/application.properties | |
- name: Build with Gradle | |
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 | |
with: | |
arguments: clean build -x test | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} | |
aws-region: ${{ env.AWS_REGION }} | |
- 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 . | |
#EC2에 배포 | |
#EC2 SSH 키를 private_key.pem | |
- 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 |