name: Deploy

on:
  push:
    tags: ["v*"]
  workflow_dispatch:
    inputs:
      version:
        description: "Version to deploy (e.g., v1.2.3)"
        required: true
        type: string

jobs:
  deploy-production:
    name: Deploy to Production
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://tercul.example.com

    steps:
      - name: Check out code
        uses: actions/checkout@v6

      - name: Extract version
        id: version
        run: |
          if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
            echo "VERSION=${{ inputs.version }}" >> $GITHUB_OUTPUT
          else
            echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
          fi

      - name: Deploy to Docker Swarm
        env:
          SWARM_HOST: ${{ secrets.SWARM_HOST }}
          SWARM_SSH_KEY: ${{ secrets.SWARM_SSH_KEY }}
          IMAGE_TAG: ${{ steps.version.outputs.VERSION }}
        run: |
          # Uncomment and configure for actual Docker Swarm deployment
          # echo "$SWARM_SSH_KEY" > swarm_key
          # chmod 600 swarm_key
          # ssh -i swarm_key -o StrictHostKeyChecking=no \
          #   deploy@$SWARM_HOST \
          #   "docker service update \
          #     --image ghcr.io/${{ github.repository }}-frontend:${IMAGE_TAG} \
          #     tercul-frontend"
          # rm swarm_key

          echo "Deploying frontend version ${{ steps.version.outputs.VERSION }} to production"
          echo "Image: ghcr.io/${{ github.repository }}-frontend:${IMAGE_TAG}"

      - name: Deployment summary
        run: |
          echo "### Frontend Deployment Complete :rocket:" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "- **Version**: ${{ steps.version.outputs.VERSION }}" >> $GITHUB_STEP_SUMMARY
          echo "- **Image**: ghcr.io/${{ github.repository }}-frontend:${{ steps.version.outputs.VERSION }}" >> $GITHUB_STEP_SUMMARY
          echo "- **Environment**: Production" >> $GITHUB_STEP_SUMMARY
          echo "- **Deployed at**: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
