This repository has been archived by the owner on Jan 6, 2024. It is now read-only.
Add archival notice to README #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt install -y bats build-essential ocl-icd-libopencl1 cmake git \ | |
pkg-config libclang-{11,14}-dev clang-{11,14} llvm-{11,14} make \ | |
ninja-build ocl-icd-libopencl1 ocl-icd-dev ocl-icd-opencl-dev \ | |
libhwloc-dev zlib1g zlib1g-dev clinfo dialog apt-utils libxml2-dev \ | |
libclang-cpp{11,14}-dev libclang-cpp{11,14} llvm-{11,14}-dev \ | |
libglib2.0-dev lcov valgrind | |
- name: Clone POCL | |
uses: actions/checkout@v3 | |
with: | |
repository: pocl/pocl | |
ref: release_3_0 | |
path: pocl | |
- name: Build POCL | |
run: | | |
cmake -S pocl -B builds/pocl \ | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |
-DWITH_LLVM_CONFIG=/usr/bin/llvm-config-14 | |
cmake --build builds/pocl | |
- name: Install POCL | |
run: | | |
cd builds/pocl | |
sudo make install | |
sudo mkdir -p /etc/OpenCL/vendors | |
sudo cp pocl.icd /etc/OpenCL/vendors/pocl.icd | |
- name: Clone Oclgrind | |
uses: actions/checkout@v3 | |
with: | |
repository: jrprice/Oclgrind | |
ref: v21.10 | |
path: oclgrind | |
- name: Build Oclgrind | |
run: | | |
cmake -S oclgrind -B builds/oclgrind \ | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |
-DLLVM_DIR=/usr/lib/llvm-11/share/llvm/cmake | |
cmake --build builds/oclgrind | |
- name: Install Oclgrind | |
run: | | |
cd builds/oclgrind | |
sudo make install | |
- name: Update registry of installed libraries | |
run: sudo ldconfig | |
- name: Clone cf4ocl | |
uses: actions/checkout@v3 | |
with: | |
path: cf4ocl | |
- name: Build cf4ocl, test against POCL and generate coverage report | |
run: | | |
cmake -S cf4ocl -B builds/cf4ocl \ | |
-DCMAKE_BUILD_TYPE=Debug \ | |
-DOpenCL_LIBRARY=/lib/x86_64-linux-gnu/libOpenCL.so \ | |
-DTESTS_GENERATE_COVERAGE=1 | |
cmake --build builds/cf4ocl --target codecov | |
- name: Upload coverage report to CodeCov | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: builds/cf4ocl | |
verbose: true | |
- name: List available OpenCL devices (should only register POCL) | |
run: ./builds/cf4ocl/src/utils/ccl_devinfo | |
- name: Test cf4ocl against Oclgrind and check for memory leaks | |
run: | | |
cd builds/cf4ocl | |
oclgrind valgrind --tool=memcheck --leak-check=full ctest |