name: Deploy

on:
  workflow_dispatch:
  push:
    tags:
      - "v[0-9]+.[0-9]+.[0-9]+"

# paths:
#   - ".gitea/workflows/deploy-client.yml"
#   - "client/**"

jobs:
#  publish-windows:
#    runs-on: ubuntu-latest
#
#    steps:
#      - name: Keyscan
#        run: |
#          ssh-keyscan git.koptilnya.xyz >> ~/.ssh/known_hosts
#
#      - name: Checkout
#        uses: actions/checkout@v4
#        with:
#          ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
#          ssh-strict: false
#          persist-credentials: false
#
#      - name: Build
#        run: |
#          docker build \
#            -t chad-client-windows-builder \
#            -f ./client/Dockerfile.windows \
#            ./client \
#            --build-arg COMMIT_SHA=${{ gitea.sha }} \
#            --build-arg API_BASE_URL=${{ vars.API_BASE_URL }} \
#            --build-arg TAURI_SIGNING_PRIVATE_KEY=${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
#
#          docker create --name chad-client-windows-container chad-client-windows-builder
#          mkdir -p artifacts
#          docker cp chad-client-windows-container:/artifacts artifacts/
#          docker rm chad-client-windows-container
#          ls -la artifacts
#
#      - name: Publish
#        uses: akkuman/gitea-release-action@v1
#        with:
#          files: |
#            artifacts/**
#          draft: true

   publish-web:
     runs-on: ubuntu-latest

     steps:
       - name: Keyscan
         run: |
           ssh-keyscan git.koptilnya.xyz >> ~/.ssh/known_hosts

       - name: Checkout
         uses: actions/checkout@v4
         with:
           ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
           ssh-strict: false
           persist-credentials: false

       - name: Build
         run: docker build -t chad-client -f ./client/Dockerfile.web ./client --build-arg COMMIT_SHA=${{ gitea.sha }} --build-arg API_BASE_URL=${{ vars.API_BASE_URL }}

       - name: Stop old container
         run: docker rm -f chad-client || true

       - name: Run
         run: |
           docker run -d \
             --name chad-client \
             --network traefik \
             --label "traefik.enable=true" \
             --label "traefik.http.routers.chad-client.rule=Host(\`chad.koptilnya.xyz\`)" \
             --label "traefik.http.routers.chad-client.entrypoints=websecure" \
             --label "traefik.http.routers.chad-client.tls.certresolver=myresolver" \
             --label "traefik.http.services.chad-client.loadbalancer.server.port=80" \
             chad-client:latest
