Skip to content

chore(ci): add Linux make build sanity job#5364

Merged
matejk merged 4 commits into
mainfrom
linux-make-build-ci
May 26, 2026
Merged

chore(ci): add Linux make build sanity job#5364
matejk merged 4 commits into
mainfrom
linux-make-build-ci

Conversation

@matejk
Copy link
Copy Markdown
Contributor

@matejk matejk commented May 25, 2026

Summary

Add a build-only CI job that exercises the classic ./configure + make path on Linux. Make is no longer officially supported but is still used by several embedded and legacy environments, and keeping a sanity build in CI prevents silent regressions in the configure script, build/config/Linux* files and per-component Makefiles.

  • Job: linux-gcc-make-build on ubuntu-24.04, gated on ci_core / push / manual dispatch.
  • ./configure --everything --no-samples builds all 24 standard components (Foundation, Encodings, XML, JSON, Util, Net, Crypto, NetSSL_OpenSSL, Data + SQLite/ODBC/MySQL/PostgreSQL, ActiveRecord (+ Compiler), Zip, JWT, PageCompiler (+ File2Page), CppParser, PDF, MongoDB, Redis, Prometheus).
  • make -s -j$(nproc) builds libs and testsuites (TESTS=1 from configure); samples and test execution are skipped -- the existing cmake jobs already cover the runtime signal.
  • Deps: libssl-dev unixodbc-dev libmysqlclient-dev libpq-dev so Crypto/NetSSL and the four Data backends link cleanly.

Test plan

  • CI: linux-gcc-make-build job is scheduled and goes green.
  • Spot-check that the build produces libPocoFoundation.so and one testrunner binary (e.g. Foundation-testrunner) for at least one component.

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.
@matejk matejk added this to the Release 1.16.0 milestone May 25, 2026
matejk added 2 commits May 25, 2026 16:12
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.
unixODBC's testsuite link pulls in libltdl for dynamic driver loading,
matching the historical pre-cmake CI install list.
@matejk matejk added CI Continuous Integration development labels May 26, 2026
@matejk matejk merged commit 6efd0ce into main May 26, 2026
53 checks passed
@matejk matejk deleted the linux-make-build-ci branch May 26, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant