11
11
UMF_VERSION : 0.1.0
12
12
13
13
jobs :
14
+ icx-build :
15
+ # TODO: we could merge ICX build with gcc/clang (using our dockers) Issue: #259
16
+ name : Intel C++ Compiler
17
+ strategy :
18
+ matrix :
19
+ build_type : [Debug, Release]
20
+ compiler : [{c: icx, cxx: icpx}]
21
+ shared_library : ['OFF']
22
+ env :
23
+ BUILD_DIR : " ${{github.workspace}}/build/"
24
+ INSTL_DIR : " ${{github.workspace}}/../install-dir"
25
+
26
+ runs-on : ubuntu-22.04
27
+ container :
28
+ image : intel/oneapi:latest
29
+ volumes :
30
+ - ${{github.workspace}}:${{github.workspace}}
31
+ options : " --privileged"
32
+
33
+ steps :
34
+ - name : Checkout
35
+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
36
+
37
+ - name : Install apt packages
38
+ run : |
39
+ apt-get update
40
+ apt-get install -y libnuma-dev libjemalloc-dev libtbb-dev libhwloc-dev python3-pip sudo
41
+
42
+ - name : Install Python requirements
43
+ run : python3 -m pip install -r third_party/requirements.txt
44
+
45
+ - name : Set ptrace value for IPC test
46
+ run : bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
47
+
48
+ - name : Configure build
49
+ run : >
50
+ cmake
51
+ -B build
52
+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
53
+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
54
+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
55
+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
56
+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
57
+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
58
+ -DUMF_FORMAT_CODE_STYLE=OFF
59
+ -DUMF_DEVELOPER_MODE=ON
60
+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
61
+ -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
62
+ -DUMF_BUILD_LIBUMF_POOL_SCALABLE=ON
63
+ -DUMF_BUILD_EXAMPLES=ON
64
+ -DUMF_TESTS_FAIL_ON_SKIP=ON
65
+
66
+ - name : Build UMF
67
+ run : cmake --build build -j $(nproc)
68
+
69
+ - name : Run tests
70
+ working-directory : ${{github.workspace}}/build
71
+ run : ctest --output-on-failure --test-dir test
72
+
73
+ - name : Test UMF installation and uninstallation
74
+ # The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
75
+ run : >
76
+ python3 ${{github.workspace}}/test/test_installation.py
77
+ --build-dir ${{env.BUILD_DIR}}
78
+ --install-dir ${{env.INSTL_DIR}}
79
+ --build-type ${{matrix.build_type}}
80
+ --disjoint-pool
81
+ --jemalloc-pool
82
+ --scalable-pool
83
+ --umf-version ${{env.UMF_VERSION}}
84
+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
85
+
14
86
ubuntu-build :
15
87
name : Ubuntu
16
88
strategy :
@@ -47,12 +119,6 @@ jobs:
47
119
compiler : {c: gcc, cxx: g++}
48
120
shared_library : ' OFF'
49
121
level_zero_provider : ' OFF'
50
- # test icx compiler
51
- - os : ' ubuntu-22.04'
52
- build_type : Release
53
- compiler : {c: icx, cxx: icpx}
54
- shared_library : ' ON'
55
- level_zero_provider : ' ON'
56
122
env :
57
123
BUILD_DIR : " ${{github.workspace}}/build/"
58
124
INSTL_DIR : " ${{github.workspace}}/../install-dir"
@@ -67,15 +133,6 @@ jobs:
67
133
sudo apt-get update
68
134
sudo apt-get install -y clang cmake libnuma-dev libjemalloc-dev libtbb-dev
69
135
70
- - name : Install oneAPI basekit
71
- if : matrix.compiler.cxx == 'icpx'
72
- run : |
73
- sudo apt-get install -y gpg-agent wget
74
- wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
75
- echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
76
- sudo apt-get update
77
- sudo apt-get install -y intel-oneapi-ippcp-devel intel-oneapi-ipp-devel intel-oneapi-common-oneapi-vars intel-oneapi-compiler-dpcpp-cpp
78
-
79
136
- name : Install g++-7
80
137
if : matrix.compiler.cxx == 'g++-7'
81
138
run : sudo apt-get install -y ${{matrix.compiler.cxx}}
88
145
89
146
- name : Configure build
90
147
run : >
91
- ${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
92
148
cmake
93
149
-B ${{env.BUILD_DIR}}
94
150
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
@@ -109,9 +165,7 @@ jobs:
109
165
110
166
- name : Run tests
111
167
working-directory : ${{env.BUILD_DIR}}
112
- run : >
113
- ${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
114
- ctest --output-on-failure --test-dir test
168
+ run : ctest --output-on-failure --test-dir test
115
169
116
170
- name : Test UMF installation and uninstallation
117
171
# The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
0 commit comments