name: Linux

on: [push, pull_request]

jobs:
  build:
    name: ${{matrix.os}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.gpu}}
    runs-on: ubuntu-latest
    container: ${{matrix.os}}
    defaults:
      run:
        shell: bash -e -o pipefail {0}
    env:
      CCACHE_DIR: ${{github.workspace}}/ccache
      CMAKE_GENERATOR: Ninja
      DEBIAN_FRONTEND: noninteractive
    strategy:
      fail-fast: true
      matrix:
        os:
          - ubuntu:22.04
          - ubuntu:24.04
        build_type:
          - Release
        lib:
          - shared
          - static
        gpu:
          - cuda
          - no-cuda

    steps:
      - name: Setup Dependencies
        run: |
          apt-get update
          apt-get install -y \
            build-essential \
            ccache \
            cmake \
            git \
            libbenchmark-dev \
            libblas-dev \
            libeigen3-dev \
            libgflags-dev \
            libgoogle-glog-dev \
            liblapack-dev \
            libmetis-dev \
            libsuitesparse-dev \
            ninja-build \
            wget

      - uses: actions/checkout@v4
        with:
          submodules: recursive

      # nvidia cuda toolkit + gcc combo shipped with 22.04LTS is broken
      # and is not able to compile code that uses thrust
      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006962
      - name: Setup CUDA Toolkit Repositories (22.04)
        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:22.04'
        run: |
          wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
          dpkg -i cuda-keyring_1.0-1_all.deb

      - name: Setup CUDA Toolkit Repositories (24.04)
        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:24.04'
        run: |
          wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
          dpkg -i cuda-keyring_1.1-1_all.deb

      - name: Setup CUDA Toolkit (<24.04)
        if: matrix.gpu == 'cuda' && matrix.os != 'ubuntu:24.04'
        run: |
          apt-get update
          apt-get install -y cuda
          echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> $GITHUB_ENV

      - name: Setup CUDA Toolkit (>=24.04)
        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:24.04'
        run: |
          apt-get update
          apt-get install -y nvidia-cuda-toolkit
          echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV

      - name: Setup cuDSS
        if: matrix.gpu == 'cuda'
        run: |
          wget https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-x86_64/libcudss-linux-x86_64-0.3.0.9_cuda12-archive.tar.xz
          tar -xf libcudss-linux-x86_64-0.3.0.9_cuda12-archive.tar.xz
          echo "cudss_DIR=${{github.workspace}}/libcudss-linux-x86_64-0.3.0.9_cuda12-archive/lib/cmake/cudss" >> $GITHUB_ENV

      - name: Cache Build
        id: cache-build
        uses: actions/cache@v4
        with:
          path: ${{env.CCACHE_DIR}}
          key: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.gpu}}-${{github.run_id}}
          restore-keys: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.gpu}}-

      - name: Setup Environment
        if: matrix.build_type == 'Release'
        run: |
          echo 'CXXFLAGS=-flto' >> $GITHUB_ENV

      - name: Configure
        run: |
          cmake -S . -B build_${{matrix.build_type}} \
                -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \
                -DUSE_CUDA=${{matrix.gpu == 'cuda'}} \
                -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
                -DCMAKE_C_COMPILER_LAUNCHER=$(which ccache) \
                -DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \
                -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install

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

      - name: Test
        if: matrix.gpu == 'no-cuda'
        run: |
          cd build_${{matrix.build_type}}/
          ctest --config ${{matrix.build_type}} \
                --output-on-failure \
                -j$(nproc)

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