-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #143 from Guzzing/performance
chore : cicd script 추가
- Loading branch information
Showing
2 changed files
with
85 additions
and
1 deletion.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
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 | ||
|
||
# 순차적으로 실행될 단계들을 정의하는 섹션 | ||
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 | ||
mkdir -p src/test/resources | ||
echo "${{ secrets.APPLICATION_YML_CONTENT }}" > src/main/resources/application.yml | ||
echo "${{ secrets.APPLICATION_DEV_YML_CONTENT }}" > src/main/resources/application-dev.yml | ||
echo "${{ secrets.APPLICATION_PROD_YML_CONTENT }}" > src/main/resources/application-prod.yml | ||
echo "${{ secrets.APPLICATION_AUTH_YML_CONTENT }}" > src/main/resources/application-auth.yml | ||
echo "${{ secrets.APPLICATION_MONITORING_YML_CONTENT }}" > src/main/resources/application-monitoring.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 | ||
echo "${{ secrets.APPLICATION_TEST_YML_CONTENT }}" > src/test/resources/application.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 |