Update RouteController.java #53
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: Java CI/CD with Gradle - RideOn | |
| # develop 브랜치에 push가 발생할 경우 동작 | |
| on: | |
| push: | |
| branches: [ "develop" ] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Spring Boot 애플리케이션을 빌드하여 도커허브에 푸시하는 과정 | |
| build-docker-image: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| # JDK 17 세팅 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| # Spring Boot 빌드 | |
| - name: Build with Gradle | |
| uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 | |
| with: | |
| arguments: clean bootJar | |
| # application.yml 템플릿 생성 | |
| - name: Create application.yml from template | |
| run: | | |
| cp src/main/resources/application.yml.template src/main/resources/application.yml | |
| envsubst < src/main/resources/application.yml.template > src/main/resources/application.yml | |
| env: | |
| # PostgreSQL | |
| DB_URL: ${{ secrets.DB_URL }} | |
| DB_USERNAME: ${{ secrets.DB_USERNAME }} | |
| DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
| # Swagger | |
| SPRINGDOC_API_DOCS_PATH: ${{ secrets.SPRINGDOC_API_DOCS_PATH }} | |
| SPRINGDOC_SWAGGER_UI_PATH: ${{ secrets.SPRINGDOC_SWAGGER_UI_PATH }} | |
| SPRINGDOC_PACKAGES_TO_SCAN: ${{ secrets.SPRINGDOC_PACKAGES_TO_SCAN }} | |
| # Naver | |
| NAVER_CLIENT_ID: ${{ secrets.NAVER_CLIENT_ID }} | |
| NAVER_CLIENT_SECRET: ${{ secrets.NAVER_CLIENT_SECRET }} | |
| NAVER_REDIRECT_URI: ${{ secrets.NAVER_REDIRECT_URI }} | |
| # Kakao | |
| KAKAO_CLIENT_ID: ${{ secrets.KAKAO_CLIENT_ID }} | |
| KAKAO_CLIENT_SECRET: ${{ secrets.KAKAO_CLIENT_SECRET }} | |
| KAKAO_REDIRECT_URI: ${{ secrets.KAKAO_REDIRECT_URI }} | |
| # Weather API | |
| WEATHER_API_KEY: ${{ secrets.WEATHER_API_KEY }} | |
| # Vworld API | |
| VWORLD_API_KEY: ${{ secrets.VWORLD_API_KEY }} | |
| #JWT_SECRET | |
| JWT_SECRET: ${{ secrets.JWT_SECRET }} | |
| # Docker 이미지 빌드 | |
| - name: Docker image build | |
| run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-rideon . | |
| # DockerHub 로그인 | |
| - name: Docker login | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
| # DockerHub 푸시 | |
| - name: Docker Hub push | |
| run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-rideon | |
| run-docker-image-on-ec2: | |
| needs: build-docker-image | |
| runs-on: self-hosted | |
| steps: | |
| # 최신 이미지 pull | |
| - name: Docker pull | |
| run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-rideon | |
| # 기존 컨테이너 정리 | |
| - name: Docker stop & remove | |
| run: | | |
| sudo docker stop spring 2>/dev/null || true | |
| sudo docker rm spring 2>/dev/null || true | |
| # 최신 컨테이너 실행 | |
| - name: Run new container | |
| run: | | |
| sudo docker run -d --name spring \ | |
| --network app-net \ | |
| --restart unless-stopped \ | |
| -p ${{ secrets.SERVER_PORT }}:${{ secrets.SERVER_PORT }} \ | |
| -e SERVER_PORT=${{ secrets.SERVER_PORT }} \ | |
| -e DB_URL=${{ secrets.DB_URL }} \ | |
| -e DB_USERNAME=${{ secrets.DB_USERNAME }} \ | |
| -e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \ | |
| ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-rideon |