Merge pull request #33 from trans-talk/develop #5
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: Build and Deploy JAR | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| build_and_deploy: | |
| runs-on: ubuntu-latest | |
| # 환경 변수 정의 | |
| env: | |
| BUILD_DIR: build/libs | |
| # ⚠️ Jar 파일 이름 확인 후 정확하게 기입해주세요. | |
| JAR_NAME: transtalk-0.0.1-SNAPSHOT.jar | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| # (JDK 설정 생략...) | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| # 1️⃣ 빌드 단계: 테스트 제외하고 Jar 파일 빌드 | |
| - name: Build JAR (Skip Tests) | |
| run: | | |
| chmod +x gradlew | |
| ./gradlew clean bootJar -x test | |
| # 2️⃣ 파일 전송 단계: 빌드된 Jar 파일을 /home/ubuntu/로 전송 (SCP 사용) | |
| - name: Transfer JAR to EC2 | |
| uses: appleboy/scp-action@v1 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| source: ${{ env.BUILD_DIR }}/${{ env.JAR_NAME }} | |
| # ⚠️ Jar 파일이 /home/ubuntu/에 저장되도록 target 경로 수정 | |
| target: /home/${{ secrets.EC2_USER }}/ | |
| strip_components: 2 | |
| # 3️⃣ 배포 실행 단계: SSH로 접속하여 서버 종료 및 새 Jar 실행 스크립트 실행 | |
| - name: Execute Deployment Script on EC2 | |
| uses: appleboy/ssh-action@v1 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| script: | | |
| # ⚠️ /home/ubuntu/로 이동 | |
| cd /home/${{ secrets.EC2_USER }}/ | |
| chmod +x ./deploy.sh | |
| ./deploy.sh |