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 "branch-name=$GIT_BRANCH" >> $GITHUB_OUTPUT

  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 ${{ needs.git-branch.outputs.branch-name }} 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' }}
