name: Demo deploy on: push: branches: ["demo"] workflow_dispatch: jobs: docker-build-and-push-client: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Client Docker image run: | docker build \ -t ghcr.io/bluewave-labs/checkmate:frontend-demo \ -f ./docker/prod/client.Dockerfile \ --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ . - name: Push Client Docker image run: docker push ghcr.io/bluewave-labs/checkmate:frontend-demo docker-build-and-push-server: needs: docker-build-and-push-client runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Server Docker image run: | docker build \ -t ghcr.io/bluewave-labs/checkmate:backend-demo \ -f ./docker/prod/server.Dockerfile \ --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ . - name: Push Server Docker image run: docker push ghcr.io/bluewave-labs/checkmate:backend-demo - name: Build Mongo Docker image run: | docker build \ -t ghcr.io/bluewave-labs/checkmate:mongo-demo \ -f ./docker/prod/mongoDB.Dockerfile \ --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ . - name: Push MongoDB Docker image run: docker push ghcr.io/bluewave-labs/checkmate:mongo-demo - name: Build Redis Docker image run: | docker build \ -t ghcr.io/bluewave-labs/checkmate:redis-demo \ -f ./docker/prod/redis.Dockerfile \ --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ . - name: Push Redis Docker image run: docker push ghcr.io/bluewave-labs/checkmate:redis-demo deploy-to-demo: needs: docker-build-and-push-server runs-on: ubuntu-latest steps: - name: SSH into server and restart container using Docker Compose uses: appleboy/ssh-action@v1.2.2 with: host: ${{ secrets.DEMO_SERVER_HOST }} username: ${{ secrets.DEMO_SERVER_USER }} key: ${{ secrets.DEMO_SERVER_SSH_KEY }} script: | cd checkmate git pull cd docker/prod docker compose down docker compose pull docker compose up -d