Skip to content

GHA: Use the shared workflow from Boost.CI for tests#490

Open
Flamefire wants to merge 19 commits into
boostorg:developfrom
Flamefire:boost-ci
Open

GHA: Use the shared workflow from Boost.CI for tests#490
Flamefire wants to merge 19 commits into
boostorg:developfrom
Flamefire:boost-ci

Conversation

@Flamefire

Copy link
Copy Markdown
Contributor

No description provided.

@mborland

Copy link
Copy Markdown
Member

This is a very much appreciated improvement, but the workflow ran with 0 jobs?

@Flamefire

Copy link
Copy Markdown
Contributor Author

I see, shouldn't have removed the customizations entirely

@Flamefire

Copy link
Copy Markdown
Contributor Author

@mborland Seems Boost.Test doesn't work on Cygwin:

2026-06-25T11:50:22.2152487Z ./boost/test/impl/debug.ipp: In function 'const char* boost::debug::{anonymous}::prepare_gdb_cmnd_file(const boost::debug::dbg_startup_info&)':
2026-06-25T11:50:22.2224879Z ./boost/test/impl/debug.ipp:437:25: error: '::mkstemp' has not been declared; did you mean 'mkdtemp'?
2026-06-25T11:50:22.2264462Z   437 |     fd_holder cmd_fd( ::mkstemp( cmd_file_name ) );
2026-06-25T11:50:22.2281207Z       |                         ^~~~~~~
2026-06-25T11:50:22.2328883Z       |                         mkdtemp
2026-06-25T11:50:22.2331570Z In file included from ./boost/test/included/unit_test.hpp:20,
2026-06-25T11:50:22.2348848Z                  from D:/a/test/boost-root/libs/test/doc/examples/runtime-configuration_2.run-fail.cpp:10:
2026-06-25T11:50:22.2385333Z ./boost/test/impl/debug.ipp: In function 'void boost::debug::debugger_break()':
2026-06-25T11:50:22.2387231Z ./boost/test/impl/debug.ipp:753:7: error: '::kill' has not been declared
2026-06-25T11:50:22.2393802Z   753 |     ::kill( ::getpid(), SIGTRAP );
2026-06-25T11:50:22.2412712Z       |       ^~~~
2026-06-25T11:50:22.2414959Z ./boost/test/impl/debug.ipp: In function 'bool boost::debug::attach_debugger(bool)':
2026-06-25T11:50:22.2416643Z ./boost/test/impl/debug.ipp:935:36: error: '::mkstemp' has not been declared; did you mean 'mkdtemp'?
2026-06-25T11:50:22.2417786Z   935 |     fd_holder init_done_lock_fd( ::mkstemp( init_done_lock_fn ) );
2026-06-25T11:50:22.2418626Z       |                                    ^~~~~~~
2026-06-25T11:50:22.2419285Z       |                                    mkdtemp
2026-06-25T11:50:22.2420149Z ./boost/test/impl/debug.ipp:973:11: error: '::select' has not been declared
2026-06-25T11:50:22.2421043Z   973 |         ::select( 0, 0, 0, 0, &to );
2026-06-25T11:50:22.2421672Z       |           ^~~~~~
2026-06-25T11:50:22.2422175Z 

I can disable cygwin CI here if you don't want to fix this.

@mborland

mborland commented Jun 25, 2026

Copy link
Copy Markdown
Member

Disable it for now and if there's demand in the future I can go back and fix it. If it's been this long and nobody has complained I would expect nobody uses it.

Edit: It looks like it's been over 6 years since the last real change to that file

Flamefire added 2 commits July 6, 2026 08:43
GHA CI runners run out of memory with the amount of tests and combinations.
@Flamefire Flamefire force-pushed the boost-ci branch 2 times, most recently from 31aebb2 to ca1427d Compare July 10, 2026 06:55
@Flamefire

Copy link
Copy Markdown
Contributor Author

@mborland How shall we continue here? I got it down to a couple failures but that was hard due to the size of the test suite: It takes a long time (3-4h were not enough for some configs) and occasionally runs into out-of-disk-space errors.
But there seem to be actual errors detected:

  • test-macro-global-fixture & log-formatter-test.run sometimes(?) fail due to missing (wrong?) log output: 1 2 3
  • Memory leaks in test-macro-global-fixture 1 2
    Maybe that's related to the previous one given the (partial?) nondeterminism there?

One job (clang-14, 17,20, ubuntu-latest, ubuntu:22.04) doesn't display why it failed, maybe it was aborted by other failures

I see that the old CI ran release mode only and a small subset of the compile-cxxstd-combinations, and only UBSAN but not ASAN. Not sure if it is a good idea to skip debug mode as it never runs with assertions but of course makes the runs much faster.

The exclude_jobs and max_cxx_stds_per_job options are additions I made specifically for this PR here. The former because I'd rather be explicit in what does NOT work, but I'm currently testing the opposite on Boost.CI too: include_jobs to select a subset of the Boost.CI configs. With that it should be possible to simply recreate the current list of job-configs; hoping that they would work as CI hasn't been run since March.
However that means manually adding and removing configurations from time to time.
If you don't want ASAN I'd also need to introduce something to Boost.CI to disable only ASAN, currently both are used in a single job.

As you are the maintainer here I'd let you make the call what and how you want to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants