Merge pull request #73 from ChillCoders-CapstoneDesign/feature/notifi… #96
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 Spring Boot to EC2 | |
| on: | |
| push: | |
| branches: | |
| - main # 배포할 브랜치: main 브랜치에 push 될 때만 이 워크플로가 실행됨 | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest # GitHub Actions가 실행될 환경 (Ubuntu 최신 버전) | |
| steps: | |
| - name: Checkout source code | |
| uses: actions/checkout@v3 # GitHub 리포지토리의 코드를 가져옴 (clone과 같은 역할) | |
| - name: Set up JDK | |
| uses: actions/setup-java@v3 # Java 환경 세팅 | |
| with: | |
| java-version: '21' # 사용할 자바 버전 | |
| distribution: 'corretto' | |
| - name: Generate application.yml | |
| run: | | |
| mkdir -p src/main/resources | |
| echo "${{ secrets.APPLICATION_YML }}" > src/main/resources/application.yml | |
| - name: Build with Gradle (Run Tests) | |
| run: ./gradlew clean build -x test # Gradle로 전체 프로젝트를 클린하고 테스트 포함하지 않고 빌드 | |
| - name: Set up SSH key | |
| run: | | |
| mkdir -p ~/.ssh | |
| echo "${{ secrets.EC2_KEY }}" > ~/.ssh/id_rsa | |
| chmod 600 ~/.ssh/id_rsa | |
| ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts | |
| - name: Copy jar to EC2 | |
| run: | | |
| scp -i ~/.ssh/id_rsa build/libs/*.jar ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.EC2_PROJECT_PATH }} | |
| - name: Run Spring Boot on EC2 | |
| run: | | |
| ssh -i ~/.ssh/id_rsa ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF | |
| pkill -f 'submate-0.0.1-SNAPSHOT.jar' || true | |
| cd ${{ secrets.EC2_PROJECT_PATH }} | |
| nohup java -jar submate-0.0.1-SNAPSHOT.jar > app.log 2>&1 & | |
| EOF |