hotfix: 공고 수정 제약사항 변경 #105
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: modelly CI/CD | |
| on: | |
| push: | |
| branches: ["main", "develop"] | |
| env: | |
| WEB_IMAGE: ${{ secrets.DOCKER_USERNAME }}/modelly-web | |
| NGINX_IMAGE: ${{ secrets.DOCKER_USERNAME }}/modelly-nginx | |
| jobs: | |
| build-and-push: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Make Firebase serviceAccountKey.json | |
| run: | | |
| mkdir -p ./src/main/resources | |
| echo "${{ secrets.SERVICE_ACCOUNT_KEY_B64 }}" | base64 -d > ./src/main/resources/moandi_serviceAccountKey.json | |
| - name: Verify Firebase key exists | |
| run: | | |
| ls -al ./src/main/resources | grep moandi_serviceAccountKey.json | |
| - name: Build JAR | |
| run: ./gradlew clean bootJar -x test | |
| - name: Login Docker Hub | |
| run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin | |
| - name: Build & Push (web) | |
| run: | | |
| docker build -t $WEB_IMAGE:latest -t $WEB_IMAGE:${{ github.sha }} . | |
| docker push $WEB_IMAGE:${{ github.sha }} | |
| docker push $WEB_IMAGE:latest | |
| - name: Build & Push (nginx) | |
| run: | | |
| docker build -f Dockerfile-nginx -t $NGINX_IMAGE:latest -t $NGINX_IMAGE:${{ github.sha }} . | |
| docker push $NGINX_IMAGE:${{ github.sha }} | |
| docker push $NGINX_IMAGE:latest | |
| deploy: | |
| runs-on: ubuntu-latest | |
| needs: build-and-push | |
| steps: | |
| - name: SSH to EC2 & deploy (no file writes) | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| set -e | |
| cd /home/ubuntu/app | |
| # 도커 로그인 | |
| echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin | |
| # 준비해둔 compose 파일 기준으로 최신 이미지 반영 | |
| docker compose pull | |
| docker compose up -d | |
| # 이미지 청소 | |
| docker image prune -f |