name: Bitcode loading CI

on: [push]

jobs:
  build:
    name: Bitcode loading CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        # BCLoad tests only run with old pass manager [aka up to and including 13]
        llvm: ["15"]
        build: ["Release"] # "RelWithDebInfo"
        os: [ubuntu-22.04]

    timeout-minutes: 30
    steps:
    - name: add llvm
      run: |
          wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
          sudo apt-add-repository "deb http://apt.llvm.org/`lsb_release -c | cut -f2`/ llvm-toolchain-`lsb_release -c | cut -f2`-${{ matrix.llvm }} main" || true
          sudo apt-get install -y cmake gcc g++ llvm-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }} libclang-${{ matrix.llvm }}-dev
          sudo python3 -m pip install --upgrade pip lit
    - uses: actions/checkout@v4
    - name: mkdir
      run: cd enzyme && rm -rf build && mkdir build
    - name: cmake
      run: |
          cd enzyme/build
          cmake .. -DLLVM_EXTERNAL_LIT=`which lit` -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
    - name: make check-bcpass
      run: cd enzyme/build && make -j `nproc` check-bcpass
