File tree Expand file tree Collapse file tree 6 files changed +48
-9
lines changed Expand file tree Collapse file tree 6 files changed +48
-9
lines changed Original file line number Diff line number Diff line change @@ -286,6 +286,9 @@ jobs:
286
286
- jobname : osx-gcc
287
287
cc : gcc-13
288
288
pool : macos-13
289
+ - jobname : osx-meson
290
+ cc : clang
291
+ pool : macos-13
289
292
- jobname : linux-gcc-default
290
293
cc : gcc
291
294
pool : ubuntu-latest
@@ -298,11 +301,15 @@ jobs:
298
301
- jobname : linux-asan-ubsan
299
302
cc : clang
300
303
pool : ubuntu-latest
304
+ - jobname : linux-meson
305
+ cc : gcc
306
+ pool : ubuntu-latest
301
307
env :
302
308
CC : ${{matrix.vector.cc}}
303
309
CC_PACKAGE : ${{matrix.vector.cc_package}}
304
310
jobname : ${{matrix.vector.jobname}}
305
311
distro : ${{matrix.vector.pool}}
312
+ TEST_OUTPUT_DIRECTORY : ${{github.workspace}}/t
306
313
runs-on : ${{matrix.vector.pool}}
307
314
steps :
308
315
- uses : actions/checkout@v4
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ test:linux:
20
20
- saas-linux-medium-amd64
21
21
variables :
22
22
CUSTOM_PATH : " /custom"
23
+ TEST_OUTPUT_DIRECTORY : " /tmp/test-output"
23
24
before_script :
24
25
- ./ci/install-dependencies.sh
25
26
script :
@@ -31,6 +32,7 @@ test:linux:
31
32
if test "$CI_JOB_STATUS" != 'success'
32
33
then
33
34
sudo --preserve-env --set-home --user=builder ./ci/print-test-failures.sh
35
+ mv "$TEST_OUTPUT_DIRECTORY"/failed-test-artifacts t/
34
36
fi
35
37
parallel :
36
38
matrix :
@@ -67,6 +69,9 @@ test:linux:
67
69
image : fedora:latest
68
70
- jobname : linux-musl
69
71
image : alpine:latest
72
+ - jobname : linux-meson
73
+ image : ubuntu:latest
74
+ CC : gcc
70
75
artifacts :
71
76
paths :
72
77
- t/failed-test-artifacts
@@ -104,6 +109,9 @@ test:osx:
104
109
- jobname : osx-reftable
105
110
image : macos-13-xcode-14
106
111
CC : clang
112
+ - jobname : osx-meson
113
+ image : macos-14-xcode-15
114
+ CC : clang
107
115
artifacts :
108
116
paths :
109
117
- t/failed-test-artifacts
Original file line number Diff line number Diff line change @@ -58,6 +58,7 @@ ubuntu-*|ubuntu32-*|debian-*)
58
58
make libssl-dev libcurl4-openssl-dev libexpat-dev wget sudo default-jre \
59
59
tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl \
60
60
libemail-valid-perl libio-pty-perl libio-socket-ssl-perl libnet-smtp-ssl-perl libdbd-sqlite3-perl libcgi-pm-perl \
61
+ libpcre2-dev meson ninja-build pkg-config \
61
62
${CC_PACKAGE:- ${CC:- gcc} } $PYTHON_PACKAGE
62
63
63
64
case " $distro " in
@@ -90,6 +91,12 @@ macos-*)
90
91
sudo xattr -d com.apple.quarantine " $CUSTOM_PATH /p4" " $CUSTOM_PATH /p4d" 2> /dev/null || true
91
92
rm helix-core-server.tgz
92
93
94
+ case " $jobname " in
95
+ osx-meson)
96
+ brew install meson ninja pcre2
97
+ ;;
98
+ esac
99
+
93
100
if test -n " $CC_PACKAGE "
94
101
then
95
102
BREW_PACKAGE=${CC_PACKAGE/ -/@ }
Original file line number Diff line number Diff line change 236
236
CC=" ${CC_PACKAGE:- ${CC:- gcc} } "
237
237
DONT_SKIP_TAGS=t
238
238
handle_failed_tests () {
239
- echo " FAILED_TEST_ARTIFACTS=t /failed-test-artifacts" >> $GITHUB_ENV
239
+ echo " FAILED_TEST_ARTIFACTS=${TEST_OUTPUT_DIRECTORY :- t} /failed-test-artifacts" >> $GITHUB_ENV
240
240
create_failed_test_artifacts
241
241
return 1
242
242
}
Original file line number Diff line number Diff line change 46
46
;;
47
47
github-actions)
48
48
mkdir -p failed-test-artifacts
49
- echo " FAILED_TEST_ARTIFACTS=t /failed-test-artifacts" >> $GITHUB_ENV
49
+ echo " FAILED_TEST_ARTIFACTS=${TEST_OUTPUT_DIRECTORY : t} /failed-test-artifacts" >> $GITHUB_ENV
50
50
cp " ${TEST_EXIT% .exit} .out" failed-test-artifacts/
51
51
tar czf failed-test-artifacts/" $test_name " .trash.tar.gz " $trash_dir "
52
52
continue
Original file line number Diff line number Diff line change @@ -48,12 +48,29 @@ pedantic)
48
48
;;
49
49
esac
50
50
51
- group Build make
52
- if test -n " $run_tests "
53
- then
54
- group " Run tests" make test ||
55
- handle_failed_tests
56
- fi
57
- check_unignored_build_artifacts
51
+ case " $jobname " in
52
+ * -meson)
53
+ group " Configure" meson setup build . \
54
+ --warnlevel 2 --werror \
55
+ --wrap-mode nofallback
56
+ group " Build" meson compile -C build --
57
+ if test -n " $run_tests "
58
+ then
59
+ group " Run tests" meson test -C build --print-errorlogs --test-args=" $GIT_TEST_OPTS " || (
60
+ ./t/aggregate-results.sh " ${TEST_OUTPUT_DIRECTORY:- t} /test-results"
61
+ handle_failed_tests
62
+ )
63
+ fi
64
+ ;;
65
+ * )
66
+ group Build make
67
+ if test -n " $run_tests "
68
+ then
69
+ group " Run tests" make test ||
70
+ handle_failed_tests
71
+ fi
72
+ ;;
73
+ esac
58
74
75
+ check_unignored_build_artifacts
59
76
save_good_tree
You can’t perform that action at this time.
0 commit comments