Skip to content

Merge pull request #20 from MapChillE/feature/UBLE-150-cache-log #15

Merge pull request #20 from MapChillE/feature/UBLE-150-cache-log

Merge pull request #20 from MapChillE/feature/UBLE-150-cache-log #15

Workflow file for this run

name: FastAPI CI/CD
on:
push:
branches:
- develop
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: 확인용 로그 출력
run: |
echo "🧾 최신 커밋:"
git log -1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker build & push
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/uble-reco -f ./Dockerfile .
docker push ${{ secrets.DOCKER_USERNAME }}/uble-reco:latest
- name: Create .env file on EC2 from secret
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "${{ secrets.ENV_FILE }}" > ~/.env
- name: EC2 Connect & Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script_stop: true
script: |
sudo docker stop uble-reco || true
sudo docker rm -fv uble-reco || true
sudo docker image rm ${{ secrets.DOCKER_USERNAME }}/uble-reco:latest || true
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/uble-reco:latest
sudo docker run -d \
--name uble-reco \
-p 8000:8000 \
--env-file /home/ubuntu/.env \
-v /home/ubuntu/uble-logs:/app/logs \
${{ secrets.DOCKER_USERNAME }}/uble-reco:latest
sudo docker image prune -f