Skip to content

๐Ÿ“ docs: README ์ˆ˜์ • #80

๐Ÿ“ docs: README ์ˆ˜์ •

๐Ÿ“ docs: README ์ˆ˜์ • #80

Workflow file for this run

name: MODY service Dev Build and Deploy to AWS
on:
push:
branches:
- develop
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 1. ์ฝ”๋“œ ์ฒดํฌ์•„์›ƒ
- name: Checkout Code
uses: actions/checkout@v3
# 1-1. Java 21 ์„ธํŒ…
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'temurin'
# 1-2. application.yml ํŒŒ์ผ ์ƒ์„ฑ
- name: make application.yml
run: |
# create application.yml
cd ./src/main
cd ./resources
# application.yml ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ
touch ./application.yml
# Secrets์— ์ €์žฅํ•œ ๊ฐ’์„ application.yml ํŒŒ์ผ์— ์“ฐ๊ธฐ
echo "${{ secrets.DEV_YML }}" >> ./application.yml
shell: bash # ์Šคํฌ๋ฆฝํŠธ๊ฐ€ Bash ์…ธ์—์„œ ์‹คํ–‰
# 1-2-1 start.sh ํŒŒ์ผ ์ƒ์„ฑ
- name: make start.sh
run: |
# create start.sh
cd ./scripts
# start.sh ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ
touch ./start.sh
# Secrets์— ์ €์žฅํ•œ ๊ฐ’์„ start.sh ํŒŒ์ผ์— ์“ฐ๊ธฐ
echo "${{ secrets.START_SH }}" >> ./start.sh
# 1-3. Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ
- name: Build with Gradle
run: |
chmod +x ./gradlew
./gradlew clean build -x test
# 2. AWS CLI ์„ค์ •
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
# 3. Docker ๋กœ๊ทธ์ธ
- name: Log in to Amazon ECR
run: |
aws ecr get-login-password --region ${{ secrets.AWS_REGION }} | docker login --username AWS --password-stdin ${{ secrets.AWS_ECR_REPO }}
# 4. Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ
- name: Build Docker Image
run: |
docker build -t ${{ secrets.AWS_ECR_REPO }}:latest .
docker tag ${{ secrets.AWS_ECR_REPO }}:latest ${{ secrets.AWS_ECR_REPO }}:latest
# 5. Docker ์ด๋ฏธ์ง€ ํ‘ธ์‹œ
- name: Push to Amazon ECR
run: |
docker push ${{ secrets.AWS_ECR_REPO }}:latest
# 6-0. S3 ์—…๋กœ๋“œ
- name: Upload to S3
run: |
zip -r deploy.zip appspec.yml scripts/
aws s3 cp deploy.zip s3://modi-service-bucket/deploy/deploy.zip
# 6. CodeDeploy ํŠธ๋ฆฌ๊ฑฐ
- name: Trigger CodeDeploy Deployment
run: |
aws deploy create-deployment \
--application-name modi-server \
--deployment-group-name modi-server-group \
--revision "{\"revisionType\":\"S3\",\"s3Location\":{\"bucket\":\"modi-service-bucket\",\"key\":\"deploy/deploy.zip\",\"bundleType\":\"zip\"}}"