chore: 스크립트 수정2 #11
This file contains hidden or 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: | |
| - main | |
| - chore/#4 | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 1) 코드 가져오기 | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # 2) JDK 설정 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| cache: gradle | |
| # 3) Gradle 빌드 | |
| - name: Build with Gradle | |
| run: chmod +x ./gradlew && ./gradlew bootjar | |
| # 4) JAR를 EC2로 복사 | |
| - name: Copy jar to EC2 | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| source: "build/libs/*-SNAPSHOT.jar" | |
| target: "/home/ubuntu/app" | |
| overwrite: true | |
| # 5) EC2에서 앱 재시작 | |
| - name: Restart Spring Boot app on EC2 | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| cd /home/ubuntu/app | |
| echo "[deploy] kill old app if exists" | |
| pkill -f "java -jar" || true | |
| sleep 5 | |
| echo "[deploy] list jars" | |
| ls -al build/libs | |
| JAR_PATH=$(ls -t build/libs/*.jar | head -n 1) | |
| echo "[deploy] Using JAR: $JAR_PATH" | |
| if [ -z "$JAR_PATH" ]; then | |
| echo "[deploy] No JAR found under build/libs" | |
| exit 1 | |
| fi | |
| echo "[deploy] start app with nohup in background" | |
| DB_PASSWORD=${{ secrets.DB_PASSWORD }} \ | |
| nohup java -jar "$JAR_PATH" > app.log 2>&1 & | |
| sleep 5 | |
| if pgrep -f "java -jar" > /dev/null; then | |
| echo "[deploy] Application is running." | |
| exit 0 | |
| else | |
| echo "[deploy] Application failed to start." | |
| exit 1 | |
| fi |