name: Linux

on: [push, pull_request]

jobs:
  build-linux:
    defaults:
      run:
        shell: bash
    name: GCC-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true
      matrix:
        build_type: [Release, Debug]
        extra: [no-custom-prefix, custom-prefix]
        lib: [shared, static]
        std: [98, 11, 14, 17, 20]

    steps:
      - uses: actions/checkout@v2

      - name: Setup Dependencies
        run: |
          sudo apt-get update
          DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \
            build-essential \
            cmake \
            lcov \
            libgflags-dev \
            libunwind-dev \
            ninja-build

      - name: Cache GTest
        id: cache-gtest
        uses: actions/cache@v2
        with:
          path: gtest/
          key: ${{runner.os}}-gtest-1.11

      - name: Download GTest
        if: steps.cache-gtest.outputs.cache-hit != 'true'
        run: |
          wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz
          tar xvf release-1.11.0.tar.gz

      - name: Build GTest
        if: steps.cache-gtest.outputs.cache-hit != 'true'
        run: |
          cmake -S googletest-release-1.11.0 -B build-googletest \
            -DBUILD_SHARED_LIBS=${{matrix.shared}} \
            -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
            -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/gtest \
            -G Ninja
          cmake --build build-googletest --target install

      - name: Setup Environment
        if: matrix.build_type == 'Debug'
        run: |
          echo 'CXXFLAGS=--coverage' >> $GITHUB_ENV
          echo 'GTest_ROOT=${{github.workspace}}/gtest' >> $GITHUB_ENV

      - name: Setup C++98 Environment
        if: matrix.std == '98'
        run: |
          echo 'CXXFLAGS=-Wno-error=variadic-macros -Wno-error=long-long ${{env.CXXFLAGS}}' >> $GITHUB_ENV

      - name: Configure
        env:
          CXXFLAGS: -Wall -Wextra -Wsign-conversion -Wtautological-compare -Wformat-nonliteral -Wundef -Werror ${{env.CXXFLAGS}}
        run: |
          cmake -S . -B build_${{matrix.build_type}} \
            -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \
            -DCMAKE_CXX_STANDARD=${{matrix.std}} \
            -DCMAKE_CXX_STANDARD_REQUIRED=ON \
            -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \
            -DWITH_CUSTOM_PREFIX=${{matrix.extra == 'custom-prefix'}} \
            -G Ninja \
            -Werror

      - name: Build
        run: |
          cmake --build build_${{matrix.build_type}} \
                --config ${{matrix.build_type}}

      - name: Install
        run: |
          cmake --build build_${{matrix.build_type}} \
                --config ${{matrix.build_type}} \
                --target install

          cmake build_${{matrix.build_type}} \
                -DCMAKE_INSTALL_INCLUDEDIR=${{runner.workspace}}/foo/include \
                -DCMAKE_INSTALL_LIBDIR=${{runner.workspace}}/foo/lib \
                -DCMAKE_INSTALL_DATAROOTDIR=${{runner.workspace}}/foo/share
          cmake --build build_${{matrix.build_type}} \
                --config ${{matrix.build_type}} \
                --target install

      - name: Test CMake Package (relative GNUInstallDirs)
        run: |
          cmake -S src/package_config_unittest/working_config \
                -B build_${{matrix.build_type}}_package \
                -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
                -DCMAKE_PREFIX_PATH=${{github.workspace}}/install \
                -G Ninja
          cmake --build build_${{matrix.build_type}}_package \
                --config ${{matrix.build_type}}

      - name: Test CMake Package (absolute GNUInstallDirs)
        run: |
          cmake -S src/package_config_unittest/working_config \
                -B build_${{matrix.build_type}}_package_foo \
                -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
                -DCMAKE_PREFIX_PATH=${{runner.workspace}}/foo \
                -G Ninja
          cmake --build build_${{matrix.build_type}}_package_foo \
                --config ${{matrix.build_type}}

      - name: Test
        run: |
          ctest --test-dir build_${{matrix.build_type}} -j$(nproc) --output-on-failure

      - name: Generate Coverage
        if: matrix.build_type == 'Debug'
        run: |
          lcov --directory . --capture --output-file coverage.info
          lcov --remove coverage.info \
            '${{github.workspace}}/gtest/*' \
            '*/src/*_unittest.cc' \
            '*/src/googletest.h' \
            '*/src/mock-log.h' \
            '/usr/*' \
            --output-file coverage.info

          for file in src/glog/*.h.in; do
            name=$(basename ${file})
            name_we=${name%.h.in}
            sed -i "s|build_${{matrix.build_type}}/glog/${name_we}.h\$|${file}|g" coverage.info
          done

          lcov --list coverage.info

      - name: Upload Coverage to Codecov
        if: matrix.build_type == 'Debug'
        uses: codecov/codecov-action@v2
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          fail_ci_if_error: true
          verbose: true
