Skip to content

Merge pull request #181 from Bandnol/hotfix/view-calendar #60

Merge pull request #181 from Bandnol/hotfix/view-calendar

Merge pull request #181 from Bandnol/hotfix/view-calendar #60

Workflow file for this run

name: deploy-main
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Check prisma has changes
uses: dorny/paths-filter@v3
id: paths-filter
with:
filters: |
prisma: ["prisma/**"]
- name: Log in to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build Docker Image
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/bandnol-server .
- name: Push Docker Image
run: docker push ${{ secrets.DOCKER_USERNAME }}/bandnol-server
- name: Configure SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
cat >>~/.ssh/config <<END
Host bandnol
HostName ${{ secrets.EC2_HOST }}
User ubuntu
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
END
- name: Deploy on EC2
run: |
ssh bandnol <<EOF
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/bandnol-server
sudo docker stop bandnol || true
sudo docker rm bandnol || true
sudo docker run -d \
--name bandnol \
--env-file /opt/app/.env.prod \
-p 3000:3000 \
${{ secrets.DOCKER_USERNAME }}/bandnol-server
sudo docker image prune -af
sudo docker container prune -f
sudo docker network prune -f
EOF
- name: Apply prisma migrations
if: steps.paths-filter.outputs.prisma == 'true'
run: |
ssh bandnol <<EOF
sudo docker exec bandnol npx prisma migrate deploy
EOF