8
8
FROM --pass-args $from
9
9
DO --pass-args +BOOTSTRAP_BUILD_INSTALL_EXPORT
10
10
11
+ test :
12
+ FROM --pass-args +build
13
+ RUN uv run --group = build \
14
+ make ctest-run TEST_CONFIG= Debug JUNIT_OUTPUT= /results.xml || :
15
+ SAVE ARTIFACT /results.xml
16
+
11
17
env.llvm :
12
18
ARG --required llvm_major_version
13
19
# LLVM doesn't provide a container, so we just use Ubuntu and the automated
@@ -108,7 +114,7 @@ BOOTSTRAP_DEPS:
108
114
109
115
IF __distro_is "Alpine-*"
110
116
# Basic Alpine requirements:
111
- RUN __install build-base
117
+ RUN __install build-base ccache
112
118
IF __bool $use_vcpkg
113
119
# Requirements for vcpkg to install our dependencies:
114
120
RUN __install pkgconfig linux-headers perl bash tar zip unzip git
@@ -117,9 +123,9 @@ BOOTSTRAP_DEPS:
117
123
RUN __install fmt-dev boost-dev openssl-dev
118
124
END
119
125
ELSE IF __distro_is "Debian-*" "Ubuntu-*"
120
- RUN __install build-essential
126
+ RUN __install build-essential ccache
121
127
IF __bool $use_vcpkg
122
- RUN __install zip unzip pkg-config
128
+ RUN __install zip unzip pkg-config git
123
129
ELSE
124
130
RUN __install libfmt-dev libssl-dev
125
131
IF apt-cache show libboost-url-dev 2> &1 > /dev/null
@@ -130,8 +136,19 @@ BOOTSTRAP_DEPS:
130
136
RUN __install libboost-url1.81-dev libboost-container1.81-dev
131
137
END
132
138
END
139
+ ELSE IF test -f /etc/redhat-release
140
+ RUN __install python3.12 ccache gcc gcc-c++
141
+ IF __bool $use_vcpkg
142
+ RUN __install zip unzip perl git
143
+ ELSE
144
+ RUN __install boost-devel fmt-devel openssl-devel boost-url
145
+ END
133
146
END
134
147
148
+ # Set the directory where Ccache writes its data, and cache that across runs
149
+ ENV CCACHE_DIR = /run/ccache
150
+ CACHE /run/ccache
151
+
135
152
# Do some additional setup for vcpkg
136
153
IF __bool $use_vcpkg
137
154
# Required when bootstrapping vcpkg on Alpine:
@@ -164,31 +181,31 @@ BUILD:
164
181
ARG cpack_out
165
182
ARG launcher
166
183
DO +COPY_SRC
167
- CACHE ~/.cache/ccache
168
184
# Toggle testing
169
185
ARG test= true
170
186
# Enable -Werror
171
- ARG warnings_as_errors= false
187
+ ARG warnings_as_errors= true
172
188
# Toggle PMM in the build
173
189
ARG use_vcpkg= true
174
190
# The configurations to build (semicolon-separated list)
175
191
ARG configs= Debug
176
192
# Configure
177
- RUN $launcher make test \
178
- LAUNCHER= 'uv run --group=build' \
179
- CONFIGS= "$configs" \
180
- TEST_CONFIG= "Debug" \
181
- INSTALL_PREFIX= $install_prefix \
182
- USE_PMM= $(__boolstr $use_vcpkg ) \
183
- WARNINGS_AS_ERRORS= $(__boolstr $warnings_as_errors ) \
184
- BUILD_TESTING= $(__boolstr $test )
193
+ RUN $launcher uv run --group = build \
194
+ make build \
195
+ CONFIGS= "$configs" \
196
+ INSTALL_PREFIX= $install_prefix \
197
+ USE_PMM= $(__boolstr $use_vcpkg ) \
198
+ WARNINGS_AS_ERRORS= $(__boolstr $warnings_as_errors ) \
199
+ BUILD_TESTING= $(__boolstr $test )
185
200
IF test "$install_prefix" != ""
186
201
FOR conf IN Debug # Release RelWithDebInfo
187
- RUN $launcher make install-fast LAUNCHER= 'uv run --group=build' INSTALL_PREFIX= $install_prefix INSTALL_CONFIG= $conf
202
+ RUN $launcher uv run --group = build \
203
+ make install-fast INSTALL_PREFIX= $install_prefix INSTALL_CONFIG= $conf
188
204
END
189
205
END
190
206
IF test "$cpack_out" != ""
191
- RUN $launcher make package-fast LAUNCHER= 'uv run --group=build' \
192
- CPACK_OUT= "$cpack_out" \
193
- PACKAGE_CONFIGS= Debug
207
+ RUN $launcher uv run --group = build \
208
+ make package-fast \
209
+ CPACK_OUT= "$cpack_out" \
210
+ PACKAGE_CONFIGS= "$configs"
194
211
END
0 commit comments