The Windows Server 2019 runner image has been removed as of 2025-06-30,
so it's not available anymore. For further information on that see
<https://github.com/actions/runner-images/issues/12045>.
However, we can test on the newer Windows Server 2022 image instead.
Unfortunately, the Windows Server 2019 image was the last one to have
Visual Studio 2019, so from now on only Visual Studio 2022 can be used
in the CI workflows for MSVC.
The Ubuntu 20.04 image on GitHub Actions will be unavailable by
2025-04-15. See <https://github.com/actions/runner-images/issues/11101>
for more information on the deprecation and removal.
Therefore all build jobs that use the Ubuntu 20.04 runner image
of GHA have to be either migrated to a newer runner image (if
the compiler version is available on a newer image) or have to be
moved to Docker containers using Ubuntu 20.04 (if the compiler
version is not available on the newer runner images). And that's
what this change tries to do.
* ci: add workaround for failing container jobs
Node.js 20 is not supported in older containers like ubuntu:18.04,
but GitHub Actions nowawadays forces the use of Node.js 20, even
if the action itself still specified Node.js 16 as the version to
use. The result is that e.g. `actions/checkout@v3` fails in the
containers, although it should not (because v3 is still specified
Node.js 16).
See <https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/>
for more information on that forced Node.js version. Fortunately,
there still is a workaround to restore the old behaviour, and
that is to set a environment variable to allow older Node.js to
be used in those actions, and that is what this change does.
* ci: switch from macOS 11 to macOS 12
The runner image for macOS 11 has been removed on 2024-06-28. See
<https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/>
for more information on that.
So the easiest fix is probably just to move to the next newest
version of macOS that is still avaiable for GHA.
* ci: replace macOS 10.15 with macOS 11 in CI workflow
GitHub started the deprecation process for macOS 10.15 runners
on 2022-05-31, and macOS 10.15 will be completely unsupported by
2022-08-30 (if things proceed as planned).
See <https://github.com/actions/runner-images/issues/5583> for
more information on the removal of the macOS 10.15 images.
This issue already hit us during the build for PR #716, because
at that time there was a scheduled brownout for macOS 10.15
builds to raise awareness of the upcoming removal.
* ci: remove Azure pipeline build configuration
See <https://github.com/boostorg/gil/pull/717#issuecomment-1212415021>.
GitHub started the deprecation process for Ubuntu 18.04 Action
runners on 2022-08-08, and Ubuntu 18.04 will be completely
unsupported by 2022-12-01 (if things proceed as planned).
See <https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/>
for the announcement and more information on that.
So this commit replace those Ubuntu 18.04 runners with the
next newest Ubuntu 20.04 runner that have shown to still work
with the newer version.
The other five GHA jobs with Ubuntu 18.04 (gcc-6, gcc-7,
clang++-3.9, clang++-4.0, clang++-5.0) still need to be dealt
with separately later.
Windows 2016 has been retired in March 2022, so it's not available
anymore. For further information on that see
<https://github.com/actions/virtual-environments/issues/4312>.
However, we can test on the newer Windows 2022 image instead.
This also brings Visual Studio 2022.
* Replace Ubuntu 16.04 with Ubuntu 18.04 in GitHub Actions
Ubuntu 16.04 is no longer available for GitHub Actions,
because support for it has ended. Some older Clang versions
seem to be unavailable in the APT repostiry, so those are not
changed to 18.04 by intention.
* Replace Ubuntu 16.04 with Ubuntu 18.04 in Azure Pipelines
Despite https://clang.llvm.org/cxx_status.html saying:
Clang 3.4 and later implement all of the ISO C++ 2014 standard.
The clang 3.5 suffers from the bug in C++14 mode causing failure of
Boost.Filesystem build with:
error: debug information for auto is not yet supported
error: debug information for auto is not yet supported
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800483
The `compiler` property should trigger creation of `user-config.jam`
with the expected GCC 8 defined.
Something has changed on the GitHub Actions images or Boost.Build
and GCC 8 build job started failing:
/home/runner/work/gil/boost-root/tools/build/src/tools/gcc.jam:203: in gcc.init from module gcc
error: toolset gcc initialization:
error: version '8' requested but 'g++-8' not found and version '7.5.0' of default 'g++' does not match
e.g. https://github.com/boostorg/gil/pull/562/checks?check_run_id=2246393722
The compilers should be `install`-ed explicitly to avoid such issues in future.
Add basic GitHub Actions configuration based on mp11
Remove Actions jobs using GCC 4.7 and 4.8 - unsupported compilers
Run b2 with --abbreviate-paths on Windows
The -std=c++1z is broken for clang-4.0 but no need to test it
Add -mbig-obj to GCC on Windows
- That is to avoid string table overflow and file too big
Define _GLIBCXX_USE_CXX11_ABI=0 for clang 3.5, 3.6, 3.7
- Should help avoid linker error:
`undefined reference to std::ios_base::failure::failure(char const*, std::error_code const&)`
Disable certain check in algorithm_channel_relation test for clang<3.8