234 lines (222 loc) · 7.43 KB
/
ccpp.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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
compiler-18:
runs-on: ubuntu-18.04
# Ubuntu 18.04 runner image will be unsupported by 2022-12-01.
# Set continue on error to avoid job failed by planned brownout.
# https://github.com/actions/runner-images/issues/6002
continue-on-error: true
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-7
cxx: g++-7
package: g++-7
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.6'
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev ninja-build zlib1g-dev ${{ matrix.sets.package }}
- name: install meson==0.49.0
run: |
python -m pip install --upgrade pip setuptools wheel
pip install meson==0.49.0
- name: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
run: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
# `compile` subcommand requires Meson 0.54 or later.
- name: ninja -C builddir
run: ninja -C builddir
# Since Meson 0.57, `test` subcommand will only rebuild test program.
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
compiler-20:
runs-on: ubuntu-20.04
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-8
cxx: g++-8
package: g++-8
- cc: gcc-9
cxx: g++-9
package: g++-9
- cc: gcc-10
cxx: g++-10
package: g++-10
- cc: clang-7
cxx: clang++-7
package: clang-7
- cc: clang-8
cxx: clang++-8
package: clang-8
- cc: clang-9
cxx: clang++-9
package: clang-9
- cc: clang-10
cxx: clang++-10
package: clang-10
steps:
- uses: actions/checkout@v3
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev ${{ matrix.sets.package }}
- name: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
run: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
compiler-22:
runs-on: ubuntu-22.04
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-11
cxx: g++-11
package: g++-11
- cc: clang-11
cxx: clang++-11
package: clang-11
# Omit clang-12 due to jobs are too many.
- cc: clang-13
cxx: clang++-13
package: clang-13
- cc: clang-14
cxx: clang++-14
package: clang-14
steps:
- uses: actions/checkout@v3
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev ${{ matrix.sets.package }}
- name: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
run: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
autotools:
runs-on: ${{ matrix.sets.os }}
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
CXXFLAGS: -Og -pipe
GTEST_SRCDIR: /usr/src/googletest
strategy:
matrix:
sets:
- os: ubuntu-22.04
cc: gcc-11
cxx: g++-11
package: g++-11
steps:
- uses: actions/checkout@v3
- name: dependencies installation
run: |
sudo apt update
sudo apt install autoconf-archive libgnutls28-dev libgtest-dev libgtkmm-3.0-dev libltdl-dev libtool zlib1g-dev ${{ matrix.sets.package }}
- name: autoreconf -i
run: autoreconf -i
- name: ./configure
run: ./configure
- name: make -j$(nproc)
run: make -j$(nproc)
- name: make check -j$(nproc)
run: make check -j$(nproc)
- name: ./src/jdim -V
run: ./src/jdim -V
library-20:
runs-on: ubuntu-20.04
env:
CC: gcc-9
CXX: g++-9
CXXFLAGS: -Og -pipe -D_DEBUG
strategy:
matrix:
deps:
- config_args: --with-tls=gnutls --with-sessionlib=xsmp --with-migemo --with-alsa --with-pangolayout
packages: libgnutls28-dev libmigemo-dev libasound2-dev
- config_args: --with-tls=openssl --with-sessionlib=no --with-migemo --disable-compat-cache-dir
packages: libssl-dev libmigemo-dev
- config_args: --with-tls=openssl --with-sessionlib=xsmp --with-alsa --with-pangolayout
packages: libssl-dev libasound2-dev
steps:
- uses: actions/checkout@v3
- name: dependencies installation (${{ matrix.deps.packages }})
run: |
sudo apt update
sudo apt install autoconf-archive libgtest-dev libtool libltdl-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-9
- name: autoreconf -i
run: autoreconf -i
- name: ./configure ${{ matrix.deps.config_args }}
run: ./configure ${{ matrix.deps.config_args }}
- name: make -j$(nproc)
run: make -j$(nproc)
- name: make check -j$(nproc)
run: make check -j$(nproc)
- name: ./src/jdim -V
run: ./src/jdim -V
library-22:
runs-on: ubuntu-22.04
env:
CC: gcc-11
CXX: g++-11
strategy:
matrix:
deps:
- config_args: -Dtls=gnutls -Dsessionlib=xsmp -Dmigemo=enabled -Dalsa=enabled -Dpangolayout=enabled
packages: libgnutls28-dev libmigemo-dev libasound2-dev
- config_args: -Dtls=openssl -Dsessionlib=no -Dmigemo=enabled -Dcompat_cache_dir=disabled
packages: libssl-dev libmigemo-dev
- config_args: -Dtls=openssl -Dsessionlib=xsmp -Dalsa=enabled -Dpangolayout=enabled
packages: libssl-dev libasound2-dev
steps:
- uses: actions/checkout@v3
- name: dependencies installation (${{ matrix.deps.packages }})
run: |
sudo apt update
sudo apt install meson libgtest-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-11
- name: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
run: meson builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
manual-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/jekyll-build-pages@v1
with:
source: ./docs
destination: ./docs/_site