name: Deploy to Fighter
run-name: ${{ gitea.actor }} deploying
on: 
  push: 
    paths:
      - 'fighter/**'

jobs:
  Deploy:
    runs-on: fighter
    steps:
      - name: Pull latest code onto host via SSH
        uses: appleboy/ssh-action@master
        with:
          host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
          username: ${{ vars.SSH_USERNAME_FIGHTER }}
          key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
          script: |
            cd ~/homelab
            git pull
      - name: Validate compose configs
        uses: appleboy/ssh-action@master
        with:
          host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
          username: ${{ vars.SSH_USERNAME_FIGHTER }}
          key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
          script: |
            for stack in /home/$USER/homelab/fighter/config/*
              do cd $stack && 
              echo "===== Validating $(basename $PWD) =====" && 
              docker compose config > /dev/null
            done
      - name: Deploy new config
        uses: appleboy/ssh-action@master
        with:
          host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
          username: ${{ vars.SSH_USERNAME_FIGHTER }}
          key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
          script: |
            chmod +x /home/admin/homelab/fighter/scripts/startup.sh
            /home/admin/homelab/fighter/scripts/startup.sh
      # - name: Deploy new config (DEPRECATED)
      #   uses: appleboy/ssh-action@master
      #   with:
      #     host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
      #     username: ${{ vars.SSH_USERNAME_FIGHTER }}
      #     key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
      #     script: |
      #       for stack in /home/$USER/homelab/fighter/config/*
      #         do cd $stack && 
      #         echo "===== Deploying $(basename $PWD) =====" && 
      #         docker compose up -d
      #       done
  Notify:
    runs-on: fighter
    steps:
      - name: Discord notification
        uses: appleboy/discord-action@master
        with:
          webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
          webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
          args: '<@${{ secrets.DISCORD_ID_JAFNER }}> ${{ github.repository }} deploy to fighter: ${{ job.status }}'