name: Deploy Addon

on:
  push:
    branches: master
    paths:
      - 'addon/**'
      - '.github/**'

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - ssh-host: SSH_HOST_2
            ssh-key: SSH_KEY_2
          - ssh-host: SSH_HOST_3
            ssh-key: SSH_KEY_3
          - ssh-host: SSH_HOST_4
            ssh-key: SSH_KEY_4
          - ssh-host: SSH_HOST_5
            ssh-key: SSH_KEY_5

    steps:
      - uses: actions/checkout@v1

      - name: Create Docker image
        run: |
          docker build -t torrentio-addon:latest ./addon/
          docker save torrentio-addon:latest > torrentio_addon_latest.tar

      - name: Upload Docker image
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets[matrix.ssh-host] }}
          username: ${{ secrets.SSH_USERNAME }}
          port: ${{ secrets.SSH_PORT }}
          key: ${{ secrets[matrix.ssh-key] }}
          source: torrentio_addon_latest.tar
          target: /tmp/docker
          overwrite: true

      - name: Deploy Docker image
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets[matrix.ssh-host] }}
          username: ${{ secrets.SSH_USERNAME }}
          port: ${{ secrets.SSH_PORT }}
          key: ${{ secrets[matrix.ssh-key] }}
          script: |
            docker load -i /tmp/docker/torrentio_addon_latest.tar
            docker stop torrentio-addon
            docker rm torrentio-addon
            docker run -p ${{ secrets.PORT }}:${{ secrets.PORT }} -d --name torrentio-addon --restart always --log-opt max-size=100m --network host -e PORT=${{ secrets.PORT }} -e MONGODB_URI=${{ secrets.MONGODB_URI }} -e DATABASE_URI=${{ secrets.DATABASE_URI }}  -e REDIS_URL=${{ secrets.REDIS_URL }} -e METRICS_USER=${{ secrets.METRICS_USER }} -e METRICS_PASSWORD=${{ secrets.METRICS_PASSWORD }} torrentio-addon:latest
            docker image prune -f
