1+ name : Build and Run Tests
2+
3+ on :
4+ pull_request :
5+ branches : [ "master" ]
6+ push :
7+ branches : [ "master" ]
8+
9+ concurrency :
10+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+ cancel-in-progress : true
12+
13+ jobs :
14+
15+ # Build HiCR and run tests
16+ build :
17+ runs-on : ubuntu-latest
18+ steps :
19+ - uses : actions/checkout@v4
20+ - name : Updating Apt
21+ run : sudo apt update
22+ - name : Installing apt packages
23+ run : |
24+ sudo apt install -y build-essential
25+ sudo apt install -y git
26+ sudo apt install -y libgtest-dev
27+ sudo apt install -y libhwloc-dev
28+ sudo apt install -y openssh-client
29+ sudo apt install -y libopenblas-dev
30+ sudo apt install -y liblapack-dev
31+ sudo apt install -y liblapacke-dev
32+ sudo apt install -y libfabric-dev
33+ sudo apt install -y libibverbs-dev
34+ sudo apt install -y infiniband-diags
35+ sudo apt install -y libboost-context-dev
36+ sudo apt install -y curl
37+ sudo apt install -y jq
38+ sudo apt install -y python3-pip
39+ sudo apt install -y python3-venv
40+ sudo apt install -y pkgconf
41+ sudo apt install -y wget
42+ sudo apt install -y sudo
43+ sudo apt install -y libopenmpi-dev
44+ sudo apt install -y cmake
45+ sudo apt install -y libstb-dev
46+ sudo apt install -y libsfml-dev
47+ sudo apt install -y libglew-dev
48+ sudo apt install -y libglm-dev
49+ sudo apt install -y libtclap-dev
50+ sudo apt install -y ruby
51+ sudo apt install -y doxygen
52+ sudo apt install -y intel-opencl-icd
53+ - name : Installing meson, ninja and gcovr
54+ run : python3 -m pip install meson ninja gcovr
55+ - name : Install LPF
56+ run : |
57+ git clone -b noc_extension --single-branch --depth 1 https://github.com/Algebraic-Programming/LPF.git $HOME/lpf
58+ cd $HOME/lpf
59+ git checkout noc_extension
60+ mkdir ./build
61+ cd ./build
62+ ../bootstrap.sh --prefix=/usr/local
63+ make -j8
64+ sudo make install || true
65+ sudo rm -rf $HOME/lpf
66+ - name : Install OVNI
67+ run : |
68+ git clone --recursive https://github.com/bsc-pm/ovni.git $HOME/ovni
69+ cd $HOME/ovni
70+ mkdir build
71+ cd build
72+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTING=FALSE
73+ make -j8
74+ sudo make install
75+ sudo rm -rf $HOME/ovni
76+ - name : Install NOS-V
77+ run : |
78+ git clone -b 3.1.0 --recursive https://github.com/bsc-pm/nos-v.git $HOME/nos-v
79+ cd $HOME/nos-v
80+ autoreconf -f -i -v
81+ ./configure --prefix=/usr/local --with-ovni=/usr/local
82+ make all
83+ sudo make install
84+ cd ..
85+ rm -rf $HOME/nos-v
86+ sudo sed -i '/^\[instrumentation\]/,/^\[/{s/version *= *"none"/version = "ovni"/}' /usr/local/share/nosv.toml
87+ sudo sed -i '/^\[ovni\]/,/^\[/{s/level *= *2/level = 0/}' /usr/local/share/nosv.toml
88+ - name : Install OpenCL
89+ run : |
90+ git clone -b v2024.10.24 --recursive https://github.com/KhronosGroup/OpenCL-SDK.git $HOME/opencl
91+ cd $HOME/opencl
92+ git submodule update --init --recursive
93+ cmake -D CMAKE_INSTALL_PREFIX=/usr/local -B ./build -S .
94+ sudo cmake --build ./build --config Release --target install
95+ cd ..
96+ rm -rf $HOME/opencl
97+ - name : Updating submodules
98+ run : git submodule update --init --recursive
99+ - name : Building all modules
100+ run : |
101+ echo "Building..."
102+ mkdir build
103+ meson setup build -DdistributedEngine=mpi -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true
104+ meson compile -C build
105+ - name : Running tests
106+ run : |
107+ echo "Running Tests..."
108+ meson test -C build
109+ - uses : actions/upload-artifact@v4
110+ if : always()
111+ with :
112+ name : meson-logs
113+ path : build/meson-logs/
0 commit comments