Skip to content

Commit 6efd0ce

Browse files
authored
chore(ci): add Linux make build sanity job (#5364)
* chore(ci): add Linux make build sanity job The classic ./configure + make build is no longer officially supported, but several embedded and legacy environments still rely on it. Add a Linux build-only probe that exercises the make path with --everything so any breakage in the configure script, build/config or per-component Makefiles surfaces in CI. Tests are compiled (TESTS=1) but not executed -- the cmake jobs above already cover the runtime signal. Samples are skipped to keep the wall-clock reasonable. * fix(Crypto): add OpenSSLInitializerTest to make testsuite OpenSSLInitializerTest.{cpp,h} were added in #5246 and registered in CryptoTestSuite, but the classic make testsuite Makefile lists sources explicitly and was never updated. CMake's file(GLOB) hid the gap. The new Linux make CI job exposes it as a link-time undefined reference. * fix(make): Fix compile issues. * fix(ci): install libltdl-dev for Data/ODBC link in make build unixODBC's testsuite link pulls in libltdl for dynamic driver loading, matching the historical pre-cmake CI install list.
1 parent 83a11e2 commit 6efd0ce

6 files changed

Lines changed: 41 additions & 13 deletions

File tree

.github/workflows/ci.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,28 @@ jobs:
353353
with:
354354
build-dir: build
355355

356+
# Classic GNU make build. Not officially supported anymore, but kept as a
357+
# sanity check so the legacy ./configure + make path keeps compiling. All
358+
# standard components are built (--everything); tests are compiled but not
359+
# run (cmake jobs above already cover the test signal). Samples are skipped.
360+
# Uses the Linux-c++20 config to match the cmake default (C++20 since 1.15.0);
361+
# the codebase has moved past C++17 in places (e.g. std::ranges).
362+
linux-gcc-make-build:
363+
runs-on: ubuntu-24.04
364+
needs: changes
365+
if: |
366+
needs.changes.outputs.ci_core == 'true' ||
367+
github.event_name == 'push' || github.event_name == 'workflow_dispatch'
368+
steps:
369+
- uses: actions/checkout@v5
370+
- run: >-
371+
sudo apt -y update &&
372+
sudo apt -y install libssl-dev unixodbc-dev libltdl-dev libmysqlclient-dev libpq-dev
373+
- name: Configure (classic make, C++20)
374+
run: ./configure --config=Linux-c++20 --everything --no-samples
375+
- name: Build libraries and testsuites
376+
run: make -s -j$(nproc)
377+
356378
# ------------------------------------------------------------------------
357379
# Linux cross-compile and other arch build-only probes
358380
# ------------------------------------------------------------------------

Crypto/testsuite/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ endif # FreeBSD
2828
objects = CryptoTestSuite Driver \
2929
CryptoTest DigestEngineTest ECTest \
3030
EVPTest RSATest PKCS12ContainerTest \
31-
EnvelopeTest
31+
EnvelopeTest OpenSSLInitializerTest
3232

3333
target = testrunner
3434
target_version = 1

MongoDB/Makefile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ include $(POCO_BASE)/build/rules/global
88

99
INCLUDE += -I $(POCO_BASE)/MongoDB/include/Poco/MongoDB
1010

11-
objects = Array Binary Connection Cursor DeleteRequest Database \
12-
Decimal128 Document Element GetMoreRequest InsertRequest JavaScriptCode \
13-
KillCursorsRequest Message MessageHeader ObjectId QueryRequest \
14-
RegularExpression ReplicaSet RequestMessage ResponseMessage \
15-
UpdateRequest OpMsgMessage OpMsgCursor
11+
objects = Array Binary Connection Database \
12+
Decimal128 Document Element JavaScriptCode \
13+
Message MessageHeader ObjectId \
14+
OpMsgCursor OpMsgMessage \
15+
PooledConnection PooledReplicaSetConnection \
16+
ReadPreference RegularExpression \
17+
ReplicaSet ReplicaSetConnection ReplicaSetURI \
18+
ServerDescription TopologyDescription
1619

1720
target = PocoMongoDB
1821
target_version = $(LIBVERSION)

MongoDB/testsuite/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
include $(POCO_BASE)/build/rules/global
88

9-
objects = Driver MongoDBTest MongoDBTestOpMsg MongoDBTestSuite
9+
objects = Driver BSONTest MongoDBTest MongoDBTestOpMsg MongoDBTestSuite ReplicaSetTest
1010

1111
target = testrunner
1212
target_version = 1

Prometheus/Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ include $(POCO_BASE)/build/rules/global
99
objects = \
1010
Collector \
1111
Counter \
12-
IntCounter \
12+
Exporter \
1313
Gauge \
14+
Histogram \
15+
IntCounter \
1416
IntGauge \
1517
LabeledMetric \
16-
Histogram \
17-
Registry \
18-
TextExporter \
18+
Metric \
1919
MetricsRequestHandler \
2020
MetricsServer \
2121
ProcessCollector \
22+
Registry \
23+
TextExporter \
2224
ThreadPoolCollector
2325

2426
target = PocoPrometheus

Prometheus/testsuite/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ include $(POCO_BASE)/build/rules/global
88

99
objects = \
1010
Driver \
11+
CallbackMetricTest \
1112
CounterTest \
1213
GaugeTest \
14+
HistogramTest \
1315
IntCounterTest \
1416
IntGaugeTest \
15-
CallbackMetricTest \
16-
HistogramTest \
17+
ProcessCollectorTest \
1718
PrometheusTestSuite
1819

1920
target = testrunner

0 commit comments

Comments
 (0)