On 8/27/24 20:10, Jeff Trull via Boost wrote:
Hi folks,
While reviewing the Modular Boost changes for Wave I noticed that our CI is now failing - and we're not alone in this. It looks like the version of glibc in some of the old Ubuntu containers, which are required to compile against old versions of gcc, is incompatible with the Node executable that runs actions/checkout@v2 (and 3 and 4). You might see errors like this:
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
The Github blog discusses the change here https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run...
At least one brave pioneer, Andrey Semashev, has made updates to make CI green again in a handful of libraries, but I haven't seen it discussed on the list. Is there a fix other than "rewrite using manual checkout"?
I managed to implement the workaround described in the blog post by adding these lines close to the top of ci.yml:
env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
Though it seems unwise to rely on in the long run.
It's been a long standing problem and was reported here: https://github.com/actions/checkout/issues/1590 In that issue, you can see ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION is not working for some people, and it is expected that it will stop working completely at some point. The only solution I know of is to stop using actions/checkout (or anything actions/* really). As a bonus, this will also relieve you from the deprecation warnings that appear in the CI whenever GitHub decides to switch to a newer Node version. Alternatively, you could try installing an older compiler to a newer Ubuntu that is compatible with actions/checkout, and configure an environment where the Boost build is using that older compiler. But that may be more problematic if the older compiler packages are not available for the newer Ubuntu. And you'd still depend on the actions life cycle.