@@ -11,141 +11,45 @@ env:
11
11
INSTL_DIR : " ${{github.workspace}}/../install-dir"
12
12
13
13
jobs :
14
- FastBuild :
15
- name : Fast builds
16
- env :
17
- VCPKG_PATH : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
14
+ windows-dynamic_mingw_hwloc :
15
+ name : " Windows dynamic UMF + mingw libhwloc"
18
16
strategy :
19
17
matrix :
20
- include :
21
- - os : windows-latest
22
- disjoint : ' OFF'
23
- build_tests : ' ON'
24
- simple_cmake : ' OFF'
25
- # pure C build (Windows)
26
- - os : windows-latest
27
- disjoint : ' OFF'
28
- # Tests' building is off for a pure C build
29
- build_tests : ' OFF'
30
- simple_cmake : ' OFF'
31
- - os : ubuntu-latest
32
- disjoint : ' ON'
33
- build_tests : ' ON'
34
- # Windows doesn't recognize 'CMAKE_BUILD_TYPE', it uses '--config' param in build command
35
- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release -DUMF_BUILD_BENCHMARKS=ON -DUMF_BUILD_BENCHMARKS_MT=ON'
36
- simple_cmake : ' OFF'
37
- # pure C build (Linux)
38
- - os : ubuntu-latest
39
- disjoint : ' OFF'
40
- # Windows doesn't recognize 'CMAKE_BUILD_TYPE', it uses '--config' param in build command
41
- # Tests' building is off for a pure C build
42
- build_tests : ' OFF'
43
- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release -DUMF_BUILD_BENCHMARKS=ON'
44
- simple_cmake : ' OFF'
45
- # simplest CMake on ubuntu-latest
46
- - os : ubuntu-latest
47
- disjoint : ' OFF'
48
- build_tests : ' ON'
49
- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release'
50
- simple_cmake : ' ON'
51
- # simplest CMake ubuntu-20.04
52
- - os : ubuntu-20.04
53
- disjoint : ' OFF'
54
- build_tests : ' ON'
55
- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release'
56
- simple_cmake : ' ON'
57
- runs-on : ${{ (matrix.os == 'ubuntu-latest' && github.repository_owner == 'oneapi-src') && 'intel-ubuntu-22.04' || matrix.os }}
18
+ build_type : [Release]
19
+
20
+ runs-on : ' windows-2022'
58
21
59
22
steps :
60
- - name : Checkout repository
23
+ - name : Checkout
61
24
uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
62
25
with :
63
26
fetch-depth : 0
64
27
65
- - name : Initialize vcpkg
66
- if : matrix.os == 'windows-latest'
67
- uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
68
- with :
69
- vcpkgGitCommitId : 3dd44b931481d7a8e9ba412621fa810232b66289
70
- vcpkgDirectory : ${{env.BUILD_DIR}}/vcpkg
71
- vcpkgJsonGlob : ' **/vcpkg.json'
72
-
73
- - name : Install dependencies
74
- if : matrix.os == 'windows-latest'
75
- run : vcpkg install
76
- shell : pwsh # Specifies PowerShell as the shell for running the script.
77
-
78
- - name : Install apt packages (ubuntu-latest)
79
- if : matrix.os == 'ubuntu-latest'
28
+ - name : Get hwloc from offitial repo (mingw version)
80
29
run : |
81
- sudo apt-get update
82
- sudo apt-get install -y cmake libjemalloc-dev libhwloc-dev libnuma-dev libtbb-dev
30
+ curl https://download.open-mpi.org/release/hwloc/v2.10/hwloc-win64-build-2.10.0.zip -o ${{github.workspace}}\hwloc-win64-build-2.10.0.zip
31
+ Expand-Archive ${{github.workspace}}\hwloc-win64-build-2.10.0.zip -DestinationPath ${{github.workspace}}
83
32
84
- - name : Install apt packages (ubuntu-20.04)
85
- if : matrix.os == 'ubuntu-20.04'
33
+ - name : Get TBB from github
86
34
run : |
87
- sudo apt-get update
88
- sudo apt-get install -y cmake libjemalloc-dev libnuma-dev libtbb-dev
89
- .github/scripts/install_hwloc.sh # install hwloc-2.3.0 instead of hwloc-2.1.0 present in the OS package
90
-
91
- - name : Set ptrace value for IPC test (on Linux only)
92
- if : ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-20.04' }}
93
- run : sudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
35
+ curl https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/oneapi-tbb-2021.12.0-win.zip -o ${{github.workspace}}\oneapi-tbb-2021.12.0-win.zip
36
+ Expand-Archive ${{github.workspace}}\oneapi-tbb-2021.12.0-win.zip -DestinationPath ${{github.workspace}}
94
37
95
- - name : Configure CMake
96
- if : matrix.simple_cmake == 'OFF'
38
+ - name : Configure build
97
39
run : >
98
40
cmake
99
41
-B ${{env.BUILD_DIR}}
100
- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
101
- -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
102
- -DUMF_FORMAT_CODE_STYLE=OFF
103
- -DUMF_DEVELOPER_MODE=ON
104
- -DUMF_BUILD_LIBUMF_POOL_DISJOINT=${{matrix.disjoint}}
105
- -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
106
- -DUMF_BUILD_TESTS=${{matrix.build_tests}}
107
- -DUMF_BUILD_EXAMPLES=ON
108
- -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
109
- -DUMF_TESTS_FAIL_ON_SKIP=ON
110
- -DUMF_BUILD_SHARED_LIBRARY=ON
111
- ${{matrix.extra_build_options}}
112
-
113
- - name : Configure CMake (simple)
114
- if : matrix.simple_cmake == 'ON'
115
- run : >
116
- cmake
117
- -B ${{env.BUILD_DIR}}
118
- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
42
+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}};${{github.workspace}}\hwloc-win64-build-2.10.0;${{github.workspace}}\oneapi-tbb-2021.12.0"
119
43
-DUMF_BUILD_SHARED_LIBRARY=ON
44
+ -DUMF_BUILD_EXAMPLES=ON
45
+ -DUMF_FORMAT_CODE_STYLE=ON
46
+ -DUMF_DEVELOPER_MODE=ON
120
47
-DUMF_TESTS_FAIL_ON_SKIP=ON
121
- ${{matrix.extra_build_options}}
122
-
123
- - name : Build
124
- run : cmake --build ${{env.BUILD_DIR}} --config Release -j
48
+ -DUMF_HWLOC_NAME=libhwloc
125
49
126
- - name : Run examples
127
- working-directory : ${{env.BUILD_DIR}}
128
- run : ctest --output-on-failure --test-dir examples -C Release
50
+ - name : Build UMF
51
+ run : cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
129
52
130
53
- name : Run tests
131
- if : matrix.build_tests == 'ON'
132
54
working-directory : ${{env.BUILD_DIR}}
133
- run : ctest --output-on-failure --test-dir test -C Release
134
-
135
- - name : check /DEPENDENTLOADFLAG (Windows only)
136
- if : matrix.os == 'windows-latest'
137
- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR}}/bin/Release/umf.dll
138
- shell : pwsh
139
-
140
- - name : check /DEPENDENTLOADFLAG in umf_proxy.dll
141
- if : matrix.os == 'windows-latest'
142
- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR}}/src/proxy_lib/Release/umf_proxy.dll
143
- shell : pwsh
144
-
145
- # TODO: We could add some script to verify metadata of dll's (selected fields, perhaps)
146
- # ref. https://superuser.com/questions/381276/what-are-some-nice-command-line-ways-to-inspect-dll-exe-details
147
- - name : Print metadata of our dll's
148
- if : matrix.os == 'windows-latest'
149
- run : |
150
- get-command ${{github.workspace}}/build/bin/Release/umf.dll | format-list
151
- get-command ${{github.workspace}}/build/src/proxy_lib/Release/umf_proxy.dll | format-list
55
+ run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
0 commit comments