name: Linux Build Tests

on:
  push:
    branches-ignore:
      - master
      - release
      - gha
      - Qt4
      - Qt4-dev
    tags-ignore: '*'
    paths-ignore: '/.github/workflows/release.yml'
  pull_request:

env:
  ACTIONS_ALLOW_UNSECURE_COMMANDS: true

jobs:
  build:
    name: ${{ matrix.config.name }}
    runs-on: ${{ matrix.config.os }}
    #continue-on-error: true
    strategy:
      fail-fast: false
      matrix:
        config:
        - {
            name:     "qmake : WebKit + Qt5",
            os:       ubuntu-22.04,
            packages: libqt5webkit5-dev,
            xmake:    'qmake -r "USE_STATIC_CHMLIB=1"'
          }
        - {
            name:     "qmake : WebEngine + Qt5",
            os:       ubuntu-22.04,
            packages: qtwebengine5-dev,
            xmake:    'qmake -r "USE_STATIC_CHMLIB=1" "USE_WEBENGINE=1"'
          }
        - {
            name:     "CMake : WebKit + Qt5",
            os:       ubuntu-22.04,
            packages: libqt5webkit5-dev,
            xmake:    "cmake -DUSE_STATIC_CHMLIB=ON ."
          }
        - {
            name:     "CMake : WebEngine + Qt5",
            os:       ubuntu-22.04,
            packages: qtwebengine5-dev,
            xmake:    "cmake -DUSE_STATIC_CHMLIB=ON -DUSE_WEBENGINE=ON ."
          }

    steps:
    - name: checkout
      uses: actions/checkout@v4
      with:
        submodules: true

    - name: Build & install libzip
      shell: bash
      run: |
        cd ../
        git clone https://github.com/nih-at/libzip.git
        cd libzip
        git checkout v1.11.4
        mkdir build
        cd build
        cmake ..
        cmake --build . --config Release
        sudo cmake --install . --config Release

    - name: Install packages
      run: sudo apt-get update && sudo apt-get install ${{ matrix.config.packages }} -y
      shell: bash

    - name: Setup build
      run: ${{ matrix.config.xmake }}

    - name: Build
      run: make
