-
Notifications
You must be signed in to change notification settings - Fork 319
143 lines (121 loc) · 3.55 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
name: build
on:
workflow_dispatch:
push:
pull_request:
concurrency: ci-${{ github.ref }}
jobs:
ubuntu:
# For available GitHub-hosted runners, see:
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
runs-on: ubuntu-latest
name: ubuntu (${{ matrix.compiler }})
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
compiler: [gcc]
include:
- compiler: gcc
compiler-pkgs: "g++ gcc"
cc: "gcc"
cxx: "g++"
#- compiler: clang
# compiler-pkgs: "clang libomp-dev"
# cc: "clang"
# cxx: "clang++"
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
steps:
- name: get CPU information
run: lscpu
- name: checkout repository
uses: actions/checkout@v4
- name: install dependencies
run: |
sudo apt -qq update
sudo apt install -y ${{ matrix.compiler-pkgs }} cmake gfortran \
libopenblas-dev libopenmpi-dev libmumps-dev libparmetis-dev
- name: configure
run: |
mkdir ${GITHUB_WORKSPACE}/build
cd ${GITHUB_WORKSPACE}/build
cmake \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX="${GITHUB_WORKSPACE}/usr" \
-DBLA_VENDOR="OpenBLAS" \
-DWITH_OpenMP=ON \
-DWITH_LUA=ON \
-DWITH_Zoltan=OFF \
-DWITH_Mumps=ON \
-DCREATE_PKGCONFIG_FILE=ON \
-DWITH_MPI=ON \
-DMPI_TEST_MAXPROC=2 \
-DMPIEXEC_PREFLAGS="--allow-run-as-root" \
..
- name: build
run: |
cd ${GITHUB_WORKSPACE}/build
cmake --build .
- name: install
run: |
cd ${GITHUB_WORKSPACE}/build
cmake --install .
- name: check
id: run-ctest
timeout-minutes: 150
run: |
cd ${GITHUB_WORKSPACE}/build
ctest -L quick
- name: Re-run tests
if: always() && (steps.run-ctest.outcome == 'failure')
timeout-minutes: 60
run: |
cd ${GITHUB_WORKSPACE}/build
echo "::group::Re-run failing tests"
ctest --rerun-failed --output-on-failure || true
echo "::endgroup::"
echo "::group::Log from these tests"
[ ! -f Testing/Temporary/LastTest.log ] || cat Testing/Temporary/LastTest.log
echo "::endgroup::"
windows-mingw:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
git
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gcc-fortran
mingw-w64-x86_64-cmake
mingw-w64-x86_64-openblas
mingw-w64-x86_64-parmetis
base-devel
- name: Configure
run: |
mkdir build
cd build
cmake .. -G "MSYS Makefiles" \
-DCMAKE_BUILD_TYPE="Release" \
-DBLA_VENDOR="OpenBLAS" \
-DWITH_OpenMP=ON \
-DWITH_LUA=ON \
-DWITH_Zoltan=OFF \
-DWITH_Mumps=OFF \
-DCREATE_PKGCONFIG_FILE=ON \
-DWITH_MPI=OFF
- name: Build
run: |
cd build
cmake --build .
- name: Test
run: |
cd build
ctest -L quick