name: Build and deploy

on:
  push:
    branches:
      - 'master'
    tags:
      - '*'
    paths-ignore:
      - '.github/**'
  pull_request:
    branches:
      - 'master'
    tags:
      - '*'
    paths-ignore:
      - '.github/**'
  workflow_dispatch:
      inputs:
        logLevel:
          description: 'Log level'     
          required: true
          default: 'warning' 
          type: choice
          options:
          - info
          - warning
          - debug 

jobs:
  build:
    runs-on: self-hosted
    steps:
    - name: Get branch data
      uses: actions/checkout@v2
      
    - name: Login to Docker Hub
      uses: docker/login-action@v1
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_TOKEN }}
        
    - name: Build and push image
      uses: docker/build-push-action@v2
      with:
        push: true
        tags: kandrusyak/blockchain-ui:master
  deploy:
    needs: build
    name: Deploy to host
    runs-on: self-hosted
    steps:
    - name: Get branch data
      uses: actions/checkout@v2
    
    - name: Deploying changes
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.SSH_HOST }}
        username: ${{ secrets.SSH_USERNAME }}
        password: ${{ secrets.SSH_PASSWORD }}
        script: |
          docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
          ./update.sh
