boostorg / gil

Boost.GIL - Generic Image Library | Requires C++14 since Boost 1.80
https://boostorg.github.io/gil
Boost Software License 1.0
178 stars 164 forks source link

ci: update actions/checkout in GitHub Actions workflows to v4 #739

Closed striezel closed 8 months ago

striezel commented 8 months ago

Description

This updates actions/checkout to v4, it's current version.

Changelog:

v4.1.0

  • Add support for partial checkout filters

v4.0.0

  • Support fetching without the --progress option
  • Update to node20

Tasklist

striezel commented 8 months ago

This seems to fail on all the jobs using the ubuntu:18.04 Docker container image. :(

mloskot commented 8 months ago

Yeah, this looks like a known issue for Ubuntu 18.04 which is incompatible with Node required by the checkout v4 action:

I can't see what can be done about it, other than postpone v3 to v4 pgrade or remove the jobs based on Ubuntu 18.04 (losing GCC 6, Clang 3.9, 4.0 and 5.0).

striezel commented 8 months ago

I can't see what can be done about it, other than postpone v3 to v4 pgrade or remove the jobs based on Ubuntu 18.04 (losing GCC 6, Clang 3.9, 4.0 and 5.0).

I am not sure that losing those CI jobs is acceptable. So I decided not to update the workflows that contain containerized builds to to actions/checkout@v4 and just update the others instead. It may not be the ideal solution, but it's better than nothing, and the jobs should pass now - again.

mloskot commented 8 months ago

Thank you @striezel

Another workaround could be to split this posix job

https://github.com/boostorg/gil/blob/e24c87fde24a4027bc7a0a5c873ff18c39097128/.github/workflows/ci.yml#L16-L24

into posix and posix-legacy, and move 18.04-based builds to the later, then the posix could be upgraded to checkout@v4.

This would mean copying some YAML boilerplate, but I personally don't die hard for DRY in YAML-s :)

striezel commented 8 months ago

That split would make the YAML file even longer and more complicated than it is now. I don't feel that actions/checkout@v3 vs. v4 is such a big improvement that it is worth the effort to make the CI configuration more complicated and maintain two copies of basically the same CI steps.

mloskot commented 8 months ago

Sure. By the way, I kind of steal that from Peter Dimov's https://github.com/boostorg/mp11/blob/develop/.github/workflows/ci.yml 😊