fix: 나의 성장 조회시 발생하는 오류 #184
Workflow file for this run
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 | |
| on: | |
| push: | |
| branches: ["develop"] | |
| pull_request: | |
| branches: ["develop"] | |
| workflow_dispatch: | |
| env: | |
| IMAGE_NAME: wini-server | |
| jobs: | |
| build-deploy: | |
| runs-on: ubuntu-latest | |
| environment: develop | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "17" | |
| distribution: "temurin" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: 8.8 | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x ./gradlew | |
| - name: Build with Gradle Wrapper | |
| run: ./gradlew build | |
| # Dockerhub 로그인 | |
| - name: Login to Dockerhub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| # Docker 메타데이터 추출 | |
| - name: Extract Docker metadata | |
| id: metadata | |
| uses: docker/metadata-action@v5.5.0 | |
| env: | |
| DOCKERHUB_IMAGE_FULL_NAME: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }} | |
| with: | |
| images: ${{ env.DOCKERHUB_IMAGE_FULL_NAME }} | |
| tags: | | |
| type=sha,prefix= | |
| # 이미지 빌드 및 Dockerhub에 푸시 | |
| - name: Docker Build and Push | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ steps.metadata.outputs.tags }} | |
| # docker-compose.yml을 EC2에 복사 | |
| - name: Copy docker-compose file to EC2 | |
| uses: appleboy/scp-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USERNAME }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| source: "docker-compose.yml" | |
| target: "/home/ubuntu" | |
| overwrite: true | |
| # EC2로 배포 | |
| - name: Deploy to EC2 Server | |
| uses: appleboy/ssh-action@master | |
| env: | |
| DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
| IMAGE_FULL_URL: ${{ steps.metadata.outputs.tags }} | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USERNAME }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| envs: IMAGE_FULL_URL # docker-compose.yml 에서 사용할 환경 변수 | |
| script: | | |
| echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin | |
| docker pull ${{ env.IMAGE_FULL_URL }} | |
| docker compose up -d | |
| docker image prune -a -f |