name: "CodeQL"

on:
  push:
    branches: [master, ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [master]
  schedule:
    - cron: '0 5 * * 0'

jobs:
  analyse:
    name: Analyse
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2
      with:
        # We must fetch at least the immediate parents so that if this is
        # a pull request then we can checkout the head.
        fetch-depth: 2

    # If this run was triggered by a pull request event, then checkout
    # the head of the pull request instead of the merge commit.
    - run: git checkout HEAD^2
      if: ${{ github.event_name == 'pull_request' }}

    # Initializes the CodeQL tools for scanning.
    - name: dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y cmake pkg-config libsystemd-dev libmicrohttpd-dev libgnutls28-dev libjansson-dev libcurl4-gnutls-dev zlib1g-dev gnutls-bin doxygen
        
        cd /opt
        git clone https://github.com/babelouest/orcania.git
        git clone https://github.com/babelouest/yder.git
        mkdir build
        cd build
        
        cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ../orcania
        make
        sudo make install
        rm -rf *
        
        cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ../yder
        make
        sudo make install
        rm -rf *
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v1
    - run: |
        # prepare build folders
        mkdir build
        mkdir example_programs/build
        
        # build ulfius, run tests, build package
        cd build
        cmake -DBUILD_ULFIUS_DOCUMENTATION=on ..
        make
        make doc
        sudo make install
        
        # build examples
        cd ../example_programs/build
        cmake ..
        make

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v1
