name: linux

on:
  push:
    branches:
      - "*"
    paths-ignore:
      - "**.md"
  pull_request:
    branches:
      - "*"
  workflow_dispatch:

jobs:
  build:
    name: ${{matrix.cxx_compiler}} USE_QT_GUI=${{matrix.qt_gui}}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        cxx_compiler: [g++, clang++]
        qt_gui: [YES, NO]

    steps:
      - name: "Checkout Code"
        uses: actions/checkout@v2
        with:
          submodules: "recursive"
          fetch-depth: 0

      - name: Dependencies
        run: |
          sudo apt -y update
          sudo apt -y install ninja-build build-essential libcurl4-openssl-dev libboost-regex-dev \
            libjsoncpp-dev librhash-dev libtinyxml2-dev libhtmlcxx-dev \
            libboost-system-dev libboost-filesystem-dev libboost-program-options-dev \
            libboost-date-time-dev libboost-iostreams-dev help2man cmake \
            pkg-config zlib1g-dev qtwebengine5-dev

      - name: Configure
        env:
          CXX: ${{matrix.cxx_compiler}}
        run: |
          cmake -Bbuild -DCMAKE_BUILD_TYPE=Release \
                -DUSE_QT_GUI=${{matrix.qt_gui}} -GNinja

      - name: Build
        run: ninja -Cbuild

      - name: Run
        run: cd build && ./lgogdownloader --help