name: libnetconf2 devel push
on:
  push:
    branches:
      - devel

env:
  DEFAULT_PACKAGES: libcmocka-dev zlib1g-dev libssh-dev libssl-dev libpam0g-dev
  COVERITY_PROJECT: CESNET%2Flibnetconf2

jobs:
  git-branch:
    name: Get git branch
    runs-on: ubuntu-latest
    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 "GIT_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV

  build:
    name: ${{ matrix.config.name }}
    runs-on: ${{ matrix.config.os }}
    needs: git-branch
    strategy:
      fail-fast: false
      matrix:
        config:
          - {
            name: "Coverity",
            os: "ubuntu-latest",
            build-type: "Debug",
            dep-build-type: "Debug",
            cc: "clang",
            options: "-DENABLE_DNSSEC=ON",
            packages: "",
            snaps: "",
            make-prepend: "cov-build --dir cov-int",
            make-target: ""
          }
          - {
            name: "Codecov",
            os: "ubuntu-latest",
            build-type: "Debug",
            dep-build-type: "Debug",
            cc: "gcc",
            options: "-DENABLE_COVERAGE=ON -DENABLE_DNSSEC=ON",
            packages: "lcov",
            snaps: "",
            make-prepend: "",
            make-target: ""
          }

    steps:
      - uses: actions/checkout@v3

      - name: Deps-packages
        shell: bash
        run: |
          sudo add-apt-repository ppa:kedazo/libssh-0.7.x -y
          sudo apt-get update
          sudo apt-get install $DEFAULT_PACKAGES ${{ matrix.config.packages }}
          if ${{ matrix.config.snaps != '' }}
            then sudo snap install ${{ matrix.config.snaps }}
          fi

      - name: Deps-coverity
        shell: bash
        working-directory: ${{ github.workspace }}
        run: |
          wget -q https://scan.coverity.com/download/linux64 --post-data "token=$TOKEN&project=$COVERITY_PROJECT" -O coverity-tools.tar.gz
          mkdir coverity-tools
          tar xzf coverity-tools.tar.gz --strip 1 -C coverity-tools
        env:
          TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
        if: ${{ matrix.config.name == 'Coverity' }}

      - name: Deps-libyang
        shell: bash
        run: |
          git clone -b ${{ env.GIT_BRANCH }} https://github.com/CESNET/libyang.git
          cd libyang
          mkdir build
          cd build
          CC=${{ matrix.config.cc }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.config.dep-build-type }} -DENABLE_TESTS=OFF ..
          make -j2
          sudo make install

      - name: Deps-libval
        shell: bash
        run: |
          git clone https://github.com/DNSSEC-Tools/DNSSEC-Tools.git dnssec-tools
          cd dnssec-tools/dnssec-tools/validator
          ./configure
          make -j2
          sudo make install

      - 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

      - name: Upload to Coverity.com
        shell: bash
        working-directory: ${{ github.workspace }}/build
        run: |
          tar czvf libnetconf2.tgz cov-int
          curl \
            --form token=$TOKEN \
            --form email=mvasko@cesnet.cz \
            --form file=@libnetconf2.tgz \
            --form version="`grep Version ./libnetconf2.pc | cut -d' ' -f 2`" \
            --form description="libnetconf2 NETCONF library" \
            https://scan.coverity.com/builds?project=$COVERITY_PROJECT
        env:
          TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
        if: ${{ matrix.config.name == 'Coverity' }}

      - name: Upload to Codecov.io
        shell: bash
        working-directory: ${{ github.workspace }}/build
        run: bash <(curl -s https://codecov.io/bash)
        if: ${{ matrix.config.name == 'Codecov' }}
