hotfix : PENDING상태 오류 해결 #27
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 Backend | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| deploy-backend: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: ✅ Checkout Spring Code | |
| uses: actions/checkout@v3 | |
| - name: 🔐 application.properties 생성 | |
| working-directory: ./greatjourney | |
| run: | | |
| mkdir -p src/main/resources | |
| echo "spring.datasource.url=${{ secrets.DB_URL }}" >> src/main/resources/application.properties | |
| echo "spring.datasource.username=${{ secrets.DB_USERNAME }}" >> src/main/resources/application.properties | |
| echo "spring.datasource.password=${{ secrets.DB_PASSWORD }}" >> src/main/resources/application.properties | |
| echo "spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver" >> src/main/resources/application.properties | |
| echo "spring.data.redis.host=redis" >> src/main/resources/application.properties | |
| echo "spring.data.redis.port=6379" >> src/main/resources/application.properties | |
| echo "spring.jpa.hibernate.ddl-auto=update" >> src/main/resources/application.properties | |
| echo "spring.jpa.show-sql=true" >> src/main/resources/application.properties | |
| echo "spring.jpa.properties.hibernate.format_sql=true" >> src/main/resources/application.properties | |
| echo "spring.jwt.secret=${{ secrets.JWT_SECRET }}" >> src/main/resources/application.properties | |
| echo "spring.jwt.access-token-duration=${{ secrets.JWT_ACCESS_DURATION }}" >> src/main/resources/application.properties | |
| echo "spring.jwt.refresh-token-duration=${{ secrets.JWT_REFRESH_DURATION }}" >> src/main/resources/application.properties | |
| echo "kakao.client-id=${{ secrets.KAKAO_CLIENT_ID }}" >> src/main/resources/application.properties | |
| echo "kakao.client-secret=${{ secrets.KAKAO_CLIENT_SECRET }}" >> src/main/resources/application.properties | |
| echo "spring.profiles.active=prod" >> src/main/resources/application.properties | |
| echo "google.client-id=${{ secrets.GOOGLE_CLIENT_ID }}" >> src/main/resources/application.properties | |
| echo "gpt.key=${{ secrets.GPT_KEY }}" >> src/main/resources/application.properties | |
| echo "tour.end=${{ secrets.TOUR_END }}" >> src/main/resources/application.properties | |
| echo "tour.key=${{ secrets.TOUR_KEY }}" >> src/main/resources/application.properties | |
| echo "spring.servlet.multipart.enabled=true" >> src/main/resources/application.properties | |
| echo "spring.servlet.multipart.max-file-size=2GB" >> src/main/resources/application.properties | |
| echo "spring.servlet.multipart.max-request-size=2GB" >> src/main/resources/application.properties | |
| echo "spring.servlet.multipart.file-size-threshold=2MB" >> src/main/resources/application.properties | |
| echo "spring.servlet.multipart.location=/tmp" >> src/main/resources/application.properties | |
| echo "cloud.aws.credentials.access-key=${{ secrets.BUCKET_ACCESS }}" >> src/main/resources/application.properties | |
| echo "cloud.aws.credentials.secret-key=${{ secrets.BUCKET_SECRET }}" >> src/main/resources/application.properties | |
| echo "cloud.aws.region.static=${{ secrets.BUCKET_REGION }}" >> src/main/resources/application.properties | |
| echo "cloud.aws.stack.auto=false" >> src/main/resources/application.properties | |
| echo "cloud.aws.s3.bucket=${{ secrets.BUCKET_NAME }}" >> src/main/resources/application.properties | |
| - name: ☕ Gradle Build (jar 생성) | |
| run: ./gradlew build -x test | |
| working-directory: ./greatjourney | |
| - name: 🐳 Docker Hub 로그인 | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: 📦 Build & Push Docker image (safe version, no cache) | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: ./greatjourney | |
| file: ./greatjourney/Dockerfile | |
| push: true | |
| tags: ${{ secrets.DOCKER_USERNAME }}/djj2:latest | |
| - name: 🚀 EC2에 SSH 접속 후 backend 재배포 | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| script: | | |
| cd ~/my-app | |
| docker compose pull backend | |
| docker compose up -d backend |