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 with: fetch-depth: 0 - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Get version id: vars run: echo "VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - 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 \ --build-arg VITE_APP_VERSION=${{ env.VERSION }} \ . - 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 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