4
4
branches : [ dev ]
5
5
pull_request :
6
6
branches : [ dev ]
7
+ env :
8
+ SP_TIME : ' '
9
+ ARTIFACT : ' '
10
+ IOMP : ' '
11
+ COVERAGE : ' '
7
12
jobs :
8
13
ubuntu-dev :
9
- if : ${{ !contains(github.event.head_commit.message, '[skip]') }}
14
+ if : ${{ !contains(github.event.head_commit.message, '[skip.linux]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all ]') }}
10
15
runs-on : ubuntu-22.04
11
16
timeout-minutes : 60
12
17
strategy :
@@ -41,18 +46,19 @@ jobs:
41
46
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
42
47
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
43
48
fi
49
+ sudo apt-get update
44
50
if [ "${{ matrix.mkl }}" == "ON" ]; then
45
- sudo apt-get update && sudo apt-get install intel-oneapi-mkl-devel
51
+ sudo apt-get install intel-oneapi-mkl-devel
46
52
fi
47
53
if [ "${{ matrix.compiler.c }}" == "icx" ]; then
48
- sudo apt-get update && sudo apt-get install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran
54
+ sudo apt-get install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran
49
55
echo "IOMP=ON" >> "$GITHUB_ENV"
50
56
else
51
57
echo "IOMP=OFF" >> "$GITHUB_ENV"
52
58
fi
53
59
- name : Dependency
54
60
run : |
55
- sudo apt-get update && sudo apt-get install mesa-common-dev mesa-utils freeglut3-dev libglvnd-dev dpkg-dev xz-utils
61
+ sudo apt-get install libglvnd-dev dpkg-dev xz-utils
56
62
echo "COVERAGE=OFF" >> "$GITHUB_ENV"
57
63
- name : Flag
58
64
if : |
@@ -130,7 +136,7 @@ jobs:
130
136
env :
131
137
CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
132
138
macos-dev :
133
- if : ${{ !contains(github.event.head_commit.message, '[skip]') }}
139
+ if : ${{ !contains(github.event.head_commit.message, '[skip.macos]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all ]') }}
134
140
runs-on : macos-13
135
141
timeout-minutes : 100
136
142
strategy :
@@ -155,15 +161,14 @@ jobs:
155
161
brew install go libomp
156
162
go build Checker/updater.go
157
163
mkdir build && cd build
158
- export CXXFLAGS="-Wl,-ld_classic"
159
- export FC=gfortran-11
164
+ export FC=gfortran-12
160
165
if [ "${{ matrix.compiler }}" == "clang" ]; then
161
166
export CC=$(brew --prefix llvm@15)/bin/clang
162
167
export CXX=$(brew --prefix llvm@15)/bin/clang++
163
168
cmake -DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=/Users/runner/work/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
164
169
else
165
- export CC=gcc-11
166
- export CXX=g++-11
170
+ export CC=gcc-12
171
+ export CXX=g++-12
167
172
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=/Users/runner/work/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
168
173
fi
169
174
make install -j4
@@ -193,7 +198,7 @@ jobs:
193
198
name : ${{ env.ARTIFACT }}
194
199
path : ${{ env.ARTIFACT }}
195
200
windows-dev :
196
- if : ${{ !contains(github.event.head_commit.message, '[skip]') }}
201
+ if : ${{ !contains(github.event.head_commit.message, '[skip.windows.vs]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all ]') }}
197
202
runs-on : windows-2022
198
203
timeout-minutes : 100
199
204
strategy :
@@ -202,13 +207,22 @@ jobs:
202
207
compiler : [ "Visual Studio 17 2022" ]
203
208
vtk : [ ON, OFF ]
204
209
avx : [ ON, OFF ]
210
+ mkl : [ ON, OFF ]
205
211
steps :
206
212
- name : Clone
207
213
uses : actions/checkout@v4
208
214
- name : Golang
209
215
uses : actions/setup-go@v5
210
216
with :
211
217
cache : false
218
+ - name : MKL
219
+ shell : cmd
220
+ if : matrix.mkl == 'ON'
221
+ run : |
222
+ C:/msys64/usr/bin/wget.exe -q https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a665fc26-bdf1-415f-9fc4-345f257f4fb1/w_onemkl_p_2024.2.1.106_offline.exe
223
+ C:/msys64/usr/bin/wget.exe -q https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ea23d696-a77f-4a4a-8996-20d02cdbc48f/w_fortran-compiler_p_2024.2.1.81_offline.exe
224
+ w_onemkl_p_2024.2.1.106_offline.exe -s -a --silent --eula accept
225
+ w_fortran-compiler_p_2024.2.1.81_offline.exe -s -a --silent --eula accept
212
226
- name : VTK
213
227
if : matrix.vtk == 'ON'
214
228
run : |
@@ -218,7 +232,10 @@ jobs:
218
232
run : |
219
233
go build Checker/updater.go
220
234
mkdir build && cd build
221
- cmake -G "${{ matrix.compiler }}" -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
235
+ if (Test-Path "C:/Program Files (x86)/Intel/oneAPI/") {
236
+ cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'
237
+ }
238
+ cmake -G "${{ matrix.compiler }}" -T fortran=ifx -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/lib/cmake/vtk-9.2/ -DUSE_MKL=${{ matrix.mkl }} -DLINK_DYNAMIC_MKL=OFF -DMKLROOT="C:/Program Files (x86)/Intel/oneAPI/mkl/latest" -DCMAKE_INSTALL_PREFIX=dist ..
222
239
cmake --build . --target install --config ${{ matrix.build }} -j 4
223
240
- name : Pack
224
241
shell : bash
@@ -230,6 +247,80 @@ jobs:
230
247
else
231
248
file_name+="-release"
232
249
fi
250
+ if [ "${{ matrix.mkl }}" == "ON" ]; then
251
+ file_name+="-mkl"
252
+ else
253
+ file_name+="-openblas"
254
+ fi
255
+ if [ "${{ matrix.avx }}" == "ON" ]; then
256
+ file_name+="-avx"
257
+ else
258
+ file_name+="-no-avx"
259
+ fi
260
+ if [ "${{ matrix.vtk }}" == "ON" ]; then
261
+ file_name+="-vtk"
262
+ fi
263
+ if [ "${{ matrix.mkl }}" == "ON" ]; then
264
+ file_name+=".zip"
265
+ echo "ARTIFACT=$file_name" >> "$GITHUB_ENV"
266
+ cd build/dist/bin
267
+ 7z a -tzip ../../../$file_name ./*
268
+ else
269
+ file_name+=".7z"
270
+ echo "ARTIFACT=$file_name" >> "$GITHUB_ENV"
271
+ cd build/dist/bin
272
+ 7z a ../../../$file_name ./*
273
+ fi
274
+ - name : Test
275
+ run : |
276
+ build/dist/bin/suanPan.exe -v
277
+ - name : Upload
278
+ uses : actions/upload-artifact@v4
279
+ with :
280
+ name : ${{ env.ARTIFACT }}
281
+ path : ${{ env.ARTIFACT }}
282
+ windows-gcc-dev :
283
+ if : ${{ !contains(github.event.head_commit.message, '[skip.windows.gcc]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
284
+ runs-on : windows-2022
285
+ timeout-minutes : 100
286
+ strategy :
287
+ matrix :
288
+ build : [ Release ]
289
+ compiler : [ "MinGW Makefiles" ]
290
+ vtk : [ ON ]
291
+ avx : [ ON, OFF ]
292
+ steps :
293
+ - name : Clone
294
+ uses : actions/checkout@v4
295
+ - name : Golang
296
+ uses : actions/setup-go@v5
297
+ with :
298
+ cache : false
299
+ - name : GCC
300
+ run : |
301
+ C:/msys64/usr/bin/wget.exe -q https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0posix-18.1.5-11.0.1-msvcrt-r8/winlibs-x86_64-posix-seh-gcc-13.2.0-mingw-w64msvcrt-11.0.1-r8.7z
302
+ 7z x winlibs-x86_64-posix-seh-gcc-13.2.0-mingw-w64msvcrt-11.0.1-r8.7z
303
+ - name : VTK
304
+ if : matrix.vtk == 'ON'
305
+ run : |
306
+ C:/msys64/usr/bin/wget.exe -q https://github.com/TLCFEM/prebuilds/releases/download/latest/VTK-9.3.1-win-gcc.7z
307
+ 7z x VTK-9.3.1-win-gcc.7z -oVTK
308
+ - name : Compile
309
+ run : |
310
+ go build Checker/updater.go
311
+ mkdir build && cd build
312
+ cmake -G "${{ matrix.compiler }}" -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_C_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/g++.exe -DCMAKE_Fortran_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/gfortran.exe -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/VTK/lib/cmake/vtk-9.3 -DCMAKE_INSTALL_PREFIX=dist ..
313
+ cmake --build . --target install --config ${{ matrix.build }} -j 4
314
+ - name : Pack
315
+ shell : bash
316
+ run : |
317
+ cp updater.exe build/dist/bin
318
+ file_name="suanPan-win-gcc"
319
+ if [ "${{ matrix.build }}" == "Debug" ]; then
320
+ file_name+="-debug"
321
+ else
322
+ file_name+="-release"
323
+ fi
233
324
file_name+="-openblas"
234
325
if [ "${{ matrix.avx }}" == "ON" ]; then
235
326
file_name+="-avx"
@@ -251,3 +342,4 @@ jobs:
251
342
with :
252
343
name : ${{ env.ARTIFACT }}
253
344
path : ${{ env.ARTIFACT }}
345
+
0 commit comments