diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 000000000..90668c8e6 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,50 @@ +name: "PR Tests" +permissions: read-all + +# Trigger for PR an merge to develop branch +on: + push: + branches: develop + pull_request: + workflow_dispatch: + +env: + CTEST_OUTPUT_ON_FAILURE: 1 + LAPACK_VERSION=v3.12.0 + PARALLEL: -j 2 + +jobs: + mkl: + runs-on: ubuntu-latest + # One runner for each domain + strategy: + matrix: + domain: [blas, dft, lapack, rng] + steps: + - uses: actions/checkout@v4 + - name: Install netlib + run: | + curl -sL https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACK_VERSION}.tar.gz | tar zx + SHARED_OPT="lapack-${LAPACK_VERSION} -DBUILD_SHARED_LIBS=on -DCBLAS=on -DLAPACKE=on -DCMAKE_INSTALL_PREFIX=${PWD}/lapack/install" + # 32 bit int + cmake ${SHARED_OPT} -B lapack/build32 + cmake --build lapack/build32 ${PARALLEL} --target install + # 64 bit int + cmake ${SHARED_OPT} -DBUILD_INDEX64=on -B lapack/build64 + cmake --build lapack/build64 ${PARALLEL} --target install + - name: Install oneapi + uses: rscohn2/setup-oneapi@v0 + with: + components: | + icx@2024.1.0 + mkl@2024.1.0 + - name: Configure/Build for a domain + run: | + source /opt/intel/oneapi/setvars.sh + cmake -DREF_BLAS_ROOT=${PWD}/lapack/install -DREF_LAPACK_ROOT=${PWD}/lapack/install -DTARGET_DOMAINS=${{ matrix.domain }} -B build + cmake --build build ${PARALLEL} + - name: Run tests + run: | + source /opt/intel/oneapi/setvars.sh + # Run tests, skip GPU tests + ctest --test-dir build ${PARALLEL} -E 'gpu$'