Merge pull request #102 from Guzzing/academy-schedules #110
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: develop branch Build and Deploy to EC2 | |
on: | |
push: | |
branches: [ "develop" ] | |
workflow_dispatch: | |
env: | |
BUCKET_NAME: team09-cicd-bucket | |
PROJECT_NAME: studay | |
DEPLOYMENT_GROUP_NAME: studay_cicd | |
CODE_DEPLOY_APP_NAME: studay_cicd | |
jobs: | |
# 작업의 이름 | |
build_and_test: | |
# GitHub Actions 러너의 운영 체제 | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:8.0.21 | |
env: | |
MYSQL_ROOT_PASSWORD: password | |
MYSQL_DATABASE: test | |
ports: | |
- 3306:3306 | |
# options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=10 | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
options: --entrypoint redis-server | |
# 순차적으로 실행될 단계들을 정의하는 섹션 | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up JDK 17 | |
uses: actions/[email protected] | |
with: | |
java-version: '17' | |
distribution: 'corretto' | |
- name: Grant execute permission for gradlew | |
run: chmod +x ./gradlew | |
- name: Create application.yml | |
run: | | |
mkdir -p src/main/resources | |
echo "${{ secrets.APPLICATION_YML_CONTENT }}" > src/main/resources/application.yml | |
echo "${{ secrets.APPLICATION_PROD_YML_CONTENT }}" > src/main/resources/application-prod.yml | |
echo "${{ secrets.APPLICATION_DEV_YML_CONTENT }}" > src/main/resources/application-dev.yml | |
echo "${{ secrets.APPLICATION_AUTH_YML_CONTENT }}" > src/main/resources/application-auth.yml | |
echo "${{ secrets.APPLICATION_S3_YML_CONTENT }}" > src/main/resources/application-s3.yml | |
echo "${{ secrets.APPLICATION_SWAGGER_YML_CONTENT }}" > src/main/resources/application-swagger.yml | |
- name: Build with gradle | |
run: ./gradlew build | |
- name: Openapi3 Documentation | |
run: ./gradlew openapi3 | |
- name: Make Zip File | |
run: zip -qq -r ./$GITHUB_SHA.zip . | |
shell: bash | |
- 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_PRIVATE_ACCESS_KEY }} | |
aws-region: ap-northeast-1 | |
- name: Upload to S3 | |
run: aws s3 cp --region ap-northeast-1 ./$GITHUB_SHA.zip s3://$BUCKET_NAME/$PROJECT_NAME/$GITHUB_SHA.zip | |
- name: Code Deploy To EC2 instance | |
run: aws deploy create-deployment | |
--application-name $CODE_DEPLOY_APP_NAME | |
--deployment-config-name CodeDeployDefault.AllAtOnce | |
--deployment-group-name $DEPLOYMENT_GROUP_NAME | |
--s3-location bucket=$BUCKET_NAME,bundleType=zip,key=$PROJECT_NAME/$GITHUB_SHA.zip |