fix : 유저정보 이메일 수정불가로 변경 #30
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: CI/CD Pipeline for Spring Boot | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - feat/cicd | |
| jobs: | |
| build: | |
| name: Build & Test | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v3 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Grant execute permission for Gradle | |
| run: chmod +x gradlew | |
| - name: Clear Gradle Cache | |
| run: ./gradlew clean --no-build-cache | |
| - name: Build Project | |
| run: ./gradlew clean bootJar -x test # JAR 파일 빌드 | |
| - name: Find JAR Files | |
| run: find . -name "*.jar" # ✅ 빌드된 JAR 파일 확인 | |
| # ✅ 빌드된 JAR 파일 저장 (루트 경로에서 바로 저장) | |
| - name: Save Build Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: springboot-app | |
| path: "build/libs/*.jar" # ✅ 루트 경로의 JAR 파일 저장 | |
| deploy: | |
| name: Deploy to EC2 | |
| needs: build | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download Build Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: springboot-app | |
| - name: Check Downloaded JAR | |
| run: | | |
| pwd | |
| ls -alh | |
| find . -name "*.jar" | |
| # ✅ EC2에 JAR 파일 업로드 (루트 경로) | |
| - name: Upload JAR to EC2 | |
| uses: appleboy/scp-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| source: "*.jar" # ✅ 루트 경로의 JAR 파일 업로드 | |
| target: "/home/ubuntu" | |
| debug: true | |
| # ✅ EC2에 application.yml 파일 업로드 | |
| - name: Upload application.yml to EC2 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| echo "${{ secrets.APPLICATION_YML }}" > /home/ubuntu/application.yml | |
| chmod 600 /home/ubuntu/application.yml | |
| # ✅ application-aws.yml 업로드 | |
| - name: Upload application-aws.yml to EC2 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| echo "${{ secrets.APPLICATION_AWS_YML }}" > /home/ubuntu/application-aws.yml | |
| chmod 600 /home/ubuntu/application-aws.yml | |
| # ✅ application-prod.yml 업로드 (새로 추가) | |
| - name: Upload application-prod.yml to EC2 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| echo "${{ secrets.APPLICATION_PROD_YML }}" > /home/ubuntu/application-prod.yml | |
| chmod 600 /home/ubuntu/application-prod.yml | |
| # ✅ EC2 서버에서 애플리케이션 실행 | |
| - name: Deploy Application on EC2 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| echo "🔴 기존 애플리케이션 종료" | |
| sudo fuser -k -n tcp 8080 || true | |
| sleep 5 | |
| echo "🚀 새로운 애플리케이션 실행" | |
| nohup java -jar /home/ubuntu/*.jar > /home/ubuntu/nohup.out 2>&1 & |