Skip to content

Commit

Permalink
refactor: CD 멀티 모듈로 인한 변경 사항 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
This2sho committed Apr 10, 2024
1 parent 281f207 commit 11dee57
Showing 1 changed file with 53 additions and 4 deletions.
57 changes: 53 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,42 @@ jobs:
- name: Gradle 명령 실행을 위한 권한을 부여합니다
run: chmod +x gradlew

- name: Gradle build를 수행합니다
run: ./gradlew build
- name: 변경된 모듈을 체크한다.
id: check_changes
run: |
if git diff --name-only origin/main...HEAD | grep -q "^domain/"; then
echo "domain 모듈이 변경되었습니다."
echo "::set-output name=changes::domain_changed"
elif git diff --name-only origin/main...HEAD | grep -q "^app-api/"; then
echo "api 모듈이 변경되었습니다."
echo "::set-output name=changes::api_changed"
elif git diff --name-only origin/main...HEAD | grep -q "^app-scheduler/"; then
echo "scheduler 모듈이 변경되었습니다."
echo "::set-output name=changes::scheduler_changed"
else
echo "모듈에 변경사항이 없습니다."
fi
- name: 변경된 모듈을 build한다.
run: |
case "${{ steps.check_changes.outputs.changes }}" in
domain_changed)
echo "도메인을 의존하는 모듈을 빌드합니다."
./gradlew :app-api:build
./gradlew :app-scheduler:build
;;
api_changed)
echo "api 모듈을 빌드합니다."
./gradlew :app-api:build
;;
scheduler_changed)
echo "scheduler 모듈을 빌드합니다."
./gradlew :app-scheduler:build
;;
*)
echo "모듈에 변경 사항이 없습니다."
;;
esac
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
Expand All @@ -46,11 +80,26 @@ jobs:

- name: 도커 이미지 build 후 push
uses: docker/build-push-action@v2
if: |
steps.check_changes.outputs.changes == 'domain_changed' ||
steps.check_changes.outputs.changes == 'api_changed'
with:
context: .
file: Dockerfile
file: app-api/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pct-backend:${{ github.sha }}
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pct-api:${{ github.sha }}
platforms: linux/amd64

- name: 도커 이미지 build 후 push
uses: docker/build-push-action@v2
if: |
steps.check_changes.outputs.changes == 'domain_changed' ||
steps.check_changes.outputs.changes == 'scheduler_changed'
with:
context: .
file: app-scheduler/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pct-scheduler:${{ github.sha }}
platforms: linux/amd64

deploy-to-ec2:
Expand Down

0 comments on commit 11dee57

Please sign in to comment.