Refactor: 코드 리포매팅 #62
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 EC2 | |
on: | |
push: | |
branches: | |
- prod | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# 1. 코드 체크아웃 | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# 2. JDK 설정 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 21 | |
# 3. Gradle 캐시 설정 | |
- name: Gradle Caching | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
# 4. Gradle 빌드 (테스트 무시) | |
- name: Build with Gradle | |
run: | | |
chmod +x ./gradlew | |
./gradlew clean build -x test | |
# 5. Docker Hub 로그인 | |
- name: Docker Login | |
run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} | |
# 6. Docker 이미지 빌드 | |
- name: Build Docker image | |
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/campushelper . | |
# 7. Docker Hub에 이미지 푸시 | |
- name: Push Docker image | |
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/campushelper:latest | |
# 8. EC2에 배포 | |
# 개발용 profile 인 prod 로 설정 | |
- name: Deploy to EC2 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_SSH_KEY }} | |
script_stop: true | |
script: | | |
docker stop campushelper || true | |
docker rm campushelper || true | |
docker system prune -af --volumes | |
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/campushelper:latest | |
docker run -d --name campushelper \ | |
-e SPRING_PROFILES_ACTIVE=prod \ | |
-e RDS_HOST=${{ secrets.RDS_HOST }} \ | |
-e DB_NAME=${{ secrets.DB_NAME }} \ | |
-e DB_USERNAME=${{ secrets.DB_USERNAME }} \ | |
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \ | |
-p 8080:8080 \ | |
${{ secrets.DOCKERHUB_USERNAME }}/campushelper:latest |