-
Notifications
You must be signed in to change notification settings - Fork 3
159 lines (150 loc) · 5.48 KB
/
test.yml
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
name: Test
on:
push: { branches: [ "master" ] }
pull_request: { branches: [ "master" ] }
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
jobs:
test-libintervalxt:
runs-on: ${{ matrix.on }}
strategy:
matrix:
include:
- on: Ubuntu-22.04
- on: macos-13
- on: Ubuntu-22.04
sanitizer: valgrind
steps:
- uses: actions/checkout@v2
with: { submodules: recursive }
- name: build flags
id: flags
run: |
echo "::set-output name=configure::"`[[ ${{ runner.os }} == "Linux" ]] && echo "--with-version-script"`
- uses: conda-incubator/setup-miniconda@v2
with: { miniforge-variant: "Mambaforge", miniforge-version: "latest" }
- name: install valgrind
run: |
mamba install valgrind
if: ${{ matrix.sanitizer == 'valgrind' }}
- name: install dependencies
shell: bash -l {0}
run: |
mamba env update --quiet -n test -f libintervalxt/environment.yml
conda list
- name: configure & build & test
shell: bash -l {0}
run: |
echo "::group::bootstrap"
cd libintervalxt
./bootstrap
echo "::group::configure"
export CXXFLAGS="$CXXFLAGS -UNDEBUG -g3 -fvisibility=hidden -fvisibility-inlines-hidden"
# override std=c++14 in CXXFLAGS on macOS
export CXXFLAGS="$CXXFLAGS -std=c++17"
# re-enable mem_fun_ref in macOS when building with C++17 (used by dependency PPL.)
CXXFLAGS="$CXXFLAGS -D_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS"
./configure --prefix="$PREFIX" --without-benchmark ${{ steps.flags.outputs.configure }}
echo "::group::make"
make V=1
echo "::group::test"
make V=1 `[[ "${{ matrix.sanitizer }}" == "valgrind" ]] && echo check-valgrind || echo check`
- name: show logs
shell: bash -l {0}
run: for log in `find . -name '*.log'`; do echo "::group::$log"; cat $log; echo "::endgroup"; done
if: ${{ always() }}
test-pyintervalxt:
runs-on: ${{ matrix.on }}
strategy:
matrix:
include:
- on: ubuntu-22.04
python: "3.7"
- on: ubuntu-22.04
python: "3.8"
- on: ubuntu-22.04
python: "3.9"
- on: macos-13
python: "3.7"
- on: macos-13
python: "3.8"
- on: macos-13
python: "3.9"
- on: ubuntu-22.04
python: "3.10"
- on: ubuntu-22.04
python: "3.11"
- on: ubuntu-22.04
python: "3.11"
sanitizer: valgrind
steps:
- uses: actions/checkout@v2
with: { submodules: recursive }
- name: build flags
id: flags
run: |
echo "::set-output name=configure::"`[[ ${{ runner.os }} == "Linux" ]] && echo "--with-version-script"`
- uses: conda-incubator/setup-miniconda@v2
with: { miniforge-variant: "Mambaforge", miniforge-version: "latest", python-version: "${{ matrix.python }}" }
- name: install valgrind
run: |
mamba install valgrind
if: ${{ matrix.sanitizer == 'valgrind' }}
- name: install dependencies
shell: bash -l {0}
run: |
mamba env update --quiet -n test -f libintervalxt/environment.yml
mamba env update --quiet -n test -f pyintervalxt/environment.yml
conda list
# Work around https://github.com/conda-forge/cppyy-feedstock/issues/78
- name: Fix cppyy dependencies on macOS
run: |
mamba install -n test -y libcxx=16
if: ${{ matrix.on == 'macos-13' }}
- name: configure & make & test
shell: bash -l {0}
run: |
echo "::group::bootstrap"
./bootstrap
echo "::group::configure"
export CXXFLAGS="$CXXFLAGS -UNDEBUG -g3 -fvisibility=hidden -fvisibility-inlines-hidden"
# override std=c++14 in CXXFLAGS on macOS
export CXXFLAGS="$CXXFLAGS -std=c++17"
# re-enable mem_fun_ref in macOS when building with C++17 (used by dependency PPL.)
CXXFLAGS="$CXXFLAGS -D_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS"
./configure --prefix="$PREFIX" --without-benchmark ${{ steps.flags.outputs.configure }}
echo "::group::make"
make V=1
echo "::group::test"
cd pyintervalxt
make V=1 `[[ "${{ matrix.sanitizer }}" == "valgrind" ]] && echo check-valgrind || echo check`
- name: show logs
shell: bash -l {0}
run: for log in `find . -name '*.log'`; do echo "::group::$log"; cat $log; echo "::endgroup"; done
if: ${{ always() }}
distcheck:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
with: { submodules: recursive }
- uses: conda-incubator/setup-miniconda@v2
with: { miniforge-variant: "Mambaforge", miniforge-version: "latest" }
- name: install dependencies
shell: bash -l {0}
run: |
mamba env update --quiet -n test -f libintervalxt/environment.yml
mamba env update --quiet -n test -f pyintervalxt/environment.yml
conda list
- name: make distcheck
shell: bash -l {0}
run: |
./bootstrap
./configure --prefix="$PREFIX"
make distcheck
- name: show logs
shell: bash -l {0}
run: for log in `find . -name '*.log'`; do echo "::group::$log"; cat $log; echo "::endgroup"; done
if: ${{ always() }}
env:
MAKEFLAGS: -j2