name: libyang CI
on:
  push:
    branches:
      - master
      - devel
  pull_request:
    branches:
      - master
      - devel

jobs:
  git-branch:
    name: Get git branch
    runs-on: ubuntu-18.04
    outputs:
      branch-name: ${{ steps.get-git-branch.outputs.branch-name }}
    steps:
      - id: get-git-branch
        run: |
          if ${{ github.event_name == 'push' }}
            then export GIT_BRANCH=`echo ${{ github.ref }} | cut -d'/' -f 3`
          else
            export GIT_BRANCH=${{ github.base_ref }}
          fi
          echo "::set-output name=branch-name::$GIT_BRANCH"
  build:
    name: ${{ matrix.config.name }}
    runs-on: ${{ matrix.config.os }}
    needs: git-branch
    strategy:
      fail-fast: false
      matrix:
        config:
          - {
            name: "Release, Ubuntu 18.04, gcc",
            os: "ubuntu-18.04",
            build-type: "Release",
            cc: "gcc",
            options: "-DENABLE_TESTS=ON",
            packager: "sudo apt-get",
            packages: "libcmocka-dev shunit2",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "Release, Ubuntu 18.04, clang",
            os: "ubuntu-18.04",
            build-type: "Release",
            cc: "clang",
            options: "-DENABLE_TESTS=ON",
            packager: "sudo apt-get",
            packages: "libcmocka-dev shunit2",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "Debug, Ubuntu 18.04, gcc",
            os: "ubuntu-18.04",
            build-type: "Debug",
            cc: "gcc",
            options: "",
            packager: "sudo apt-get",
            packages: "libcmocka-dev valgrind shunit2",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "Debug, Ubuntu 18.04, clang",
            os: "ubuntu-18.04",
            build-type: "Debug",
            cc: "clang",
            options: "",
            packager: "sudo apt-get",
            packages: "libcmocka-dev valgrind shunit2",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "Release, macOS 10.15, clang",
            os: "macos-10.15",
            build-type: "Release",
            cc: "clang",
            options: "-DENABLE_TESTS=ON",
            packager: "brew",
            packages: "cmocka shunit2",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "ASAN and UBSAN",
            os: "ubuntu-18.04",
            build-type: "Debug",
            cc: "clang",
            options: "-DCMAKE_C_FLAGS=-fsanitize=address,undefined -DENABLE_TESTS=ON -DENABLE_VALGRIND_TESTS=OFF",
            packager: "sudo apt-get",
            packages: "libcmocka-dev",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }
          - {
            name: "ABI Check",
            os: "ubuntu-latest",
            build-type: "ABICheck",
            cc: "gcc",
            options: "",
            packager: "sudo apt-get",
            packages: "libcmocka-dev abi-dumper abi-compliance-checker",
            snaps: "core universal-ctags",
            make-prepend: "",
            make-target: "abi-check"
          }

    steps:
      - uses: actions/checkout@v2

      - name: Deps-packages
        shell: bash
        run: |
          ${{ matrix.config.packager }} update
          if ${{ matrix.config.packages != '' }}
            then ${{ matrix.config.packager }} install ${{ matrix.config.packages }}
          fi
          if ${{ matrix.config.snaps != '' }}
            then sudo snap install ${{ matrix.config.snaps }}
          fi

      - name: Deps-uncrustify
        shell: bash
        working-directory: ${{ github.workspace }}
        run: |
          git clone --branch uncrustify-0.71.0 https://github.com/uncrustify/uncrustify
          cd uncrustify
          mkdir build
          cd build
          CC=${{ matrix.config.cc }} cmake ..
          make
          sudo make install
        if: ${{ matrix.config.name == 'Debug, Ubuntu 18.04, gcc' }}

      - name: Configure
        shell: bash
        working-directory: ${{ github.workspace }}
        run: |
          mkdir build
          cd build
          CC=${{ matrix.config.cc }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.config.build-type }} ${{ matrix.config.options }} ..

      - name: Build
        shell: bash
        working-directory: ${{ github.workspace }}/build
        run: |
          export LC_ALL=C.UTF-8
          export PATH=/snap/bin:${{ github.workspace }}/coverity-tools/bin:$PATH
          ${{ matrix.config.make-prepend }} make ${{ matrix.config.make-target }}

      - name: Test
        shell: bash
        working-directory: ${{ github.workspace }}/build
        run: ctest --output-on-failure
