diff options
Diffstat (limited to '.github/workflows/build_and_test.yml')
-rw-r--r-- | .github/workflows/build_and_test.yml | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml new file mode 100644 index 00000000..e1f59a0e --- /dev/null +++ b/.github/workflows/build_and_test.yml @@ -0,0 +1,93 @@ +name: CLBlast build + +on: + pull_request: {} + push: + branches: ['master'] + +jobs: + + build_and_test_linux_and_macos: + strategy: + matrix: + config: [ + {os: ubuntu-latest, c_compiler: gcc, cpp_compiler: g++}, + {os: ubuntu-latest, c_compiler: clang, cpp_compiler: clang++}, + {os: macos-latest, c_compiler: clang, cpp_compiler: clang++}, + ] + runs-on: ${{ matrix.config.os }} + steps: + - uses: actions/checkout@v3 + + - name: Install requirements for Ubuntu + run: | + sudo apt-get update + sudo apt-get install -yq ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends + if: ${{ matrix.config.os == 'ubuntu-latest' }} + + - name: Install requirements for macOS + run: brew install ninja + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run CMake + run: | + export CC=${{ matrix.config.c_compiler }} + export CXX=${{ matrix.config.cpp_compiler }} + cmake -S . -B build -G Ninja -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON + + - name: Compile the code + run: cmake --build build + + - name: Get the diagnostics info + run: ./build/clblast_test_diagnostics + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example client + run: ./build/clblast_client_xgemm + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example sample program + run: ./build/clblast_sample_dgemv_c + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example tuner + run: ./build/clblast_tuner_xdot + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run the unittests + run: ctest --test-dir build + if: ${{ matrix.config.os == 'macos-latest' }} + + build_windows: + + strategy: + matrix: + config: [ + {os: windows-2019, arch: x64}, + ] + + runs-on: ${{ matrix.config.os }} + + steps: + - uses: actions/checkout@v3 + + - name: Set up MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install OpenBLAS + run: | + mkdir openblas + cd openblas + C:\msys64\usr\bin\wget.exe https://github.com/xianyi/OpenBLAS/releases/download/v0.3.23/OpenBLAS-0.3.23-x64.zip + 7z x OpenBLAS-0.3.23-x64.zip + pwd + ls + + - name: Install OpenCL + run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install opencl + + - name: Run CMake + run: cmake -S . -B build -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON -DOPENCL_ROOT=C:\vcpkg\packages\opencl_x64-windows -DCBLAS_ROOT=${{ github.workspace }}\openblas + + - name: Compile the code + run: cmake --build build |