name: Build

on:
  push: {}
  pull_request: {}
  schedule:
    - cron:  '0 9 * * 1'

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]

    steps:
    - uses: actions/checkout@v1

    - name: Install Dependencies
      shell: bash
      env:
        GITHUB_OS: ${{ matrix.os }}
      run: |
        if [ "$GITHUB_OS" == "macOS-latest" ];
        then
          brew install luajit
        elif [ "$GITHUB_OS" == "ubuntu-latest" ];
        then
          sudo apt-get install -y luajit
        elif [ "$GITHUB_OS" == "windows-latest" ];
        then
          vcpkg install luajit:x64-windows
          echo "/C/vcpkg/installed/x64-windows/tools/luajit" >> $GITHUB_PATH
          echo "/C/vcpkg/installed/x64-windows/bin"   >> $GITHUB_PATH
        fi

    - name: Download Submodules
      run: |
        git submodule update --init --recursive
      if: github.event_name != 'schedule'

    - name: Download Latest ImGui
      shell: bash
      run: |
        rm -rf imgui
        git clone https://github.com/ocornut/imgui.git
      if: github.event_name == 'schedule'

    - name: Generate Bindings
      shell: bash
      run: |
        cd ./generator
        bash ./generator.sh

    - name: CMake
      run: |
        mkdir cmake-build
        cd cmake-build
        cmake -DCIMGUI_TEST=1 ..

    - name: Build
      working-directory: cmake-build
      run: |
        cmake --build .

    - name: Test
      shell: bash
      env:
        GITHUB_OS: ${{ matrix.os }}
      working-directory: cmake-build
      run: |
        if [ "$GITHUB_OS" == "windows-latest" ];
        then
          ./Debug/cimgui_test.exe
        else
          ./cimgui_test
        fi
