Skip to content

Commit ccf36ea

Browse files
committed
ci: Add 32bit build and test
It's easy enough to make changes that break on 32bit platforms and few people test that locally. Add a test for that to CI. LLVM is disabled on 32bit because installing it would bloat the image size further. The debian w/ meson task is fast enough that we can afford to test both. Use the occasion of a separate run of the tests to run them under LANG=C, we've recently discovered there's not a lot of testing in the buildfarm for the case. Discussion: https://postgr.es/m/4033181.1664395633@sss.pgh.pa.us
1 parent 80a0567 commit ccf36ea

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

.cirrus.yml

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ on_failure_ac: &on_failure_ac
4040
on_failure_meson: &on_failure_meson
4141
testrun_artifacts:
4242
paths:
43-
- "build/testrun/**/*.log"
44-
- "build/testrun/**/*.diffs"
45-
- "build/testrun/**/regress_log_*"
43+
- "build*/testrun/**/*.log"
44+
- "build*/testrun/**/*.diffs"
45+
- "build*/testrun/**/regress_log_*"
4646
type: text/plain
4747

4848
# In theory it'd be nice to upload the junit files meson generates, so that
@@ -51,7 +51,7 @@ on_failure_meson: &on_failure_meson
5151
# don't end up useful. We could probably improve on that with a some custom
5252
# conversion script, but ...
5353
meson_log_artifacts:
54-
path: "build/meson-logs/*.txt"
54+
path: "build*/meson-logs/*.txt"
5555
type: text/plain
5656

5757

@@ -229,6 +229,9 @@ task:
229229

230230
- name: Linux - Debian Bullseye - Meson
231231

232+
env:
233+
CCACHE_MAXSIZE: "400M" # tests two different builds
234+
232235
configure_script: |
233236
su postgres <<-EOF
234237
meson setup \
@@ -239,14 +242,44 @@ task:
239242
build
240243
EOF
241244
245+
# Also build & test in a 32bit build - it's gotten rare to test that
246+
# locally.
247+
configure_32_script: |
248+
su postgres <<-EOF
249+
export CC='ccache gcc -m32'
250+
meson setup \
251+
--buildtype=debug \
252+
-Dcassert=true \
253+
${LINUX_MESON_FEATURES} \
254+
-Dllvm=disabled \
255+
--pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \
256+
-DPERL=perl5.32-i386-linux-gnu \
257+
-DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
258+
build-32
259+
EOF
260+
242261
build_script: su postgres -c 'ninja -C build -j${BUILD_JOBS}'
262+
build_32_script: su postgres -c 'ninja -C build-32 -j${BUILD_JOBS}'
263+
243264
upload_caches: ccache
244265

245266
test_world_script: |
246267
su postgres <<-EOF
247268
ulimit -c unlimited
248269
meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
249270
EOF
271+
# so that we don't upload 64bit logs if 32bit fails
272+
rm -rf build/
273+
274+
# There's currently no coverage of icu with LANG=C in the buildfarm. We
275+
# can easily provide some here by running one of the sets of tests that
276+
# way. Newer versions of python insist on changing the LC_CTYPE away
277+
# from C, prevent that with PYTHONCOERCECLOCALE.
278+
test_world_32_script: |
279+
su postgres <<-EOF
280+
ulimit -c unlimited
281+
PYTHONCOERCECLOCALE=0 LANG=C meson test $MTEST_ARGS -C build-32 --num-processes ${TEST_JOBS}
282+
EOF
250283
251284
on_failure:
252285
<<: *on_failure_meson

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy