Skip to content

ci: update container versions, move 3 variants from 2022 to Ubuntu#5119

Merged
lgritz merged 2 commits intoAcademySoftwareFoundation:mainfrom
lgritz:lg-container3
Mar 31, 2026
Merged

ci: update container versions, move 3 variants from 2022 to Ubuntu#5119
lgritz merged 2 commits intoAcademySoftwareFoundation:mainfrom
lgritz:lg-container3

Conversation

@lgritz
Copy link
Copy Markdown
Collaborator

@lgritz lgritz commented Mar 29, 2026

TL;DR:

  • Bump ASWF containers to the latest versions for their years.
  • Move the "oldest" and "hobbled" tests off the 2022 containers entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year. We had been locking down, but hadn't bumped to the latest for a while. (Exception: leave the sanitizer test where it is -- the newer containers have additional checks that are catching UB that I am tracking down separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based 2022 aswf-docker containers, which are getting long in the tooth, cannot upgrade to the latest "actions" (because of a tricky interplay between runner configuration, node version the actions require, and glibc on the old containers), and may have a limited time that they will continue working.

In most film studios, CentOS is long gone or taking its last breaths, so being able to support and test on 2022 era dependencies and OS distros is of dwindling relevance. We do, however, want to keep testing versus the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

  • Move three tests from running in the 2022 containers to just running on bare Ubutu and by hook or by crook using the right dependencies:
    • the "oldest" versions we claim to support for as much of the toolchain toolchain and dependencies as is easily achievable, built with gcc
    • and the same, built with clang
    • the "hobbled" test, which is similar to the "oldest" test but with as many of the optional dependencies missing or disabled, to make sure we really do build with only required dependencies (this also is the test build for no SIMD use)
  • Keep two last tests running on 2022 containers, these are only for the purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a bit longer.
  • A few minor related touch-ups necessary to force some older dependencies on the bare Ubuntu runner.

@lgritz lgritz requested a review from jfpanisset March 29, 2026 19:17
TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
  entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer
containers have additional checks that are catching UB that I am
tracking down separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based 2022
aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on
the old containers), and may have a limited time that they will
continue working.

In most film studios, CentOS is long gone or taking its last breaths,
so being able to support and test on 2022 era dependencies and OS
distros is of dwindling relevance. We do, however, want to keep
testing versus the oldest supported versions we can muster for many
major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
  on bare Ubutu and by hook or by crook using the right dependencies:
  - the "oldest" versions we claim to support for as much of the
    toolchain toolchain and dependencies as is easily achievable,
    built with gcc
  - and the same, built with clang
  - the "hobbled" test, which is similar to the "oldest" test but with
    as many of the optional dependencies missing or disabled, to make
    sure we really do build with only required dependencies (this also
    is the test build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for
  the purpose of testing "pure" CentOS VFX Platform 2022 compliance
  for just a bit longer.
* A few minor related touch-ups necessary to force some older
  dependencies on the bare Ubuntu runner.

Signed-off-by: Larry Gritz <lg@larrygritz.com>

wip

Signed-off-by: Larry Gritz <lg@larrygritz.com>
Copy link
Copy Markdown

@jfpanisset jfpanisset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems reasonable, see my comments about possibly avoiding the third party GHA dependencies if desired.

restore-keys: ${{inputs.nametag}}
- name: Install gcc
if: inputs.gcc_action_ver != ''
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As an alternative, something like:

- name: Install gcc
  if: inputs.gcc_action_ver != ''
  run: |
        sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
        sudo apt-get update -y
        sudo apt-get install -y g++-${{inputs.gcc_action_ver}}

which is essentially what this action does, but without adding the dependency on an action of unknown provenance.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try that and see if it works.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That works, so updated for the gcc install.

python-version: ${{ inputs.python_action_ver }}
- name: Install LLVM and Clang
if: inputs.llvm_action_ver != ''
uses: KyleMayes/install-llvm-action@ebc0426251bc40c7cd31162802432c68818ab8f0 # v2.0.9
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you mainly care about llvm 11 (ore more specifically 11.0.1), you could possibly just download it directly from:

https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.1/clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz

It unpacks into:

clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10/bin
clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10/lib

etc. You could probably slam it into /usr/local with something like:

- name: Install LLVM and Clang
  if: inputs.llvm_actino_ver != ''
  run: |
      curl -fsSL https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.1/clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz | sudo tar -xJf - -C /usr/local/ --strip-components=1 

This would also avoid an unknown GHA dependency.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I already use this action in osl (where I also use it for various versions), and since I'm locking down to a specific commit hash, I'm not especially worried about the provenance. I could do it by hand, but using the action is a convenient way to get uniform behavior across versions and platforms, without my having to track down or debug the full URLs and whatnot, and it will set up the paths for me. It's just outsourcing the legwork of setting up this dependency.

Signed-off-by: Larry Gritz <lg@larrygritz.com>
@lgritz lgritz merged commit 144143d into AcademySoftwareFoundation:main Mar 31, 2026
93 of 97 checks passed
@lgritz lgritz deleted the lg-container3 branch March 31, 2026 03:35
lgritz added a commit to lgritz/OpenImageIO that referenced this pull request Mar 31, 2026
…cademySoftwareFoundation#5119)

TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer containers
have additional checks that are catching UB that I am tracking down
separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based
2022 aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on the
old containers), and may have a limited time that they will continue
working.

In most film studios, CentOS is long gone or taking its last breaths, so
being able to support and test on 2022 era dependencies and OS distros
is of dwindling relevance. We do, however, want to keep testing versus
the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
on bare Ubutu and by hook or by crook using the right dependencies:
- the "oldest" versions we claim to support for as much of the toolchain
toolchain and dependencies as is easily achievable, built with gcc
  - and the same, built with clang
- the "hobbled" test, which is similar to the "oldest" test but with as
many of the optional dependencies missing or disabled, to make sure we
really do build with only required dependencies (this also is the test
build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for the
purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a
bit longer.
* A few minor related touch-ups necessary to force some older
dependencies on the bare Ubuntu runner.

---------

Signed-off-by: Larry Gritz <lg@larrygritz.com>
lgritz added a commit to lgritz/OpenImageIO that referenced this pull request Mar 31, 2026
…cademySoftwareFoundation#5119)

TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer containers
have additional checks that are catching UB that I am tracking down
separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based
2022 aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on the
old containers), and may have a limited time that they will continue
working.

In most film studios, CentOS is long gone or taking its last breaths, so
being able to support and test on 2022 era dependencies and OS distros
is of dwindling relevance. We do, however, want to keep testing versus
the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
on bare Ubutu and by hook or by crook using the right dependencies:
- the "oldest" versions we claim to support for as much of the toolchain
toolchain and dependencies as is easily achievable, built with gcc
  - and the same, built with clang
- the "hobbled" test, which is similar to the "oldest" test but with as
many of the optional dependencies missing or disabled, to make sure we
really do build with only required dependencies (this also is the test
build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for the
purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a
bit longer.
* A few minor related touch-ups necessary to force some older
dependencies on the bare Ubuntu runner.

---------

Signed-off-by: Larry Gritz <lg@larrygritz.com>
lgritz added a commit to lgritz/OpenImageIO that referenced this pull request Mar 31, 2026
…cademySoftwareFoundation#5119)

TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer containers
have additional checks that are catching UB that I am tracking down
separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based
2022 aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on the
old containers), and may have a limited time that they will continue
working.

In most film studios, CentOS is long gone or taking its last breaths, so
being able to support and test on 2022 era dependencies and OS distros
is of dwindling relevance. We do, however, want to keep testing versus
the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
on bare Ubutu and by hook or by crook using the right dependencies:
- the "oldest" versions we claim to support for as much of the toolchain
toolchain and dependencies as is easily achievable, built with gcc
  - and the same, built with clang
- the "hobbled" test, which is similar to the "oldest" test but with as
many of the optional dependencies missing or disabled, to make sure we
really do build with only required dependencies (this also is the test
build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for the
purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a
bit longer.
* A few minor related touch-ups necessary to force some older
dependencies on the bare Ubuntu runner.

---------

Signed-off-by: Larry Gritz <lg@larrygritz.com>
ssh4net pushed a commit to ssh4net/OpenImageIO that referenced this pull request Apr 2, 2026
…cademySoftwareFoundation#5119)

TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer containers
have additional checks that are catching UB that I am tracking down
separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based
2022 aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on the
old containers), and may have a limited time that they will continue
working.

In most film studios, CentOS is long gone or taking its last breaths, so
being able to support and test on 2022 era dependencies and OS distros
is of dwindling relevance. We do, however, want to keep testing versus
the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
on bare Ubutu and by hook or by crook using the right dependencies:
- the "oldest" versions we claim to support for as much of the toolchain
toolchain and dependencies as is easily achievable, built with gcc
  - and the same, built with clang
- the "hobbled" test, which is similar to the "oldest" test but with as
many of the optional dependencies missing or disabled, to make sure we
really do build with only required dependencies (this also is the test
build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for the
purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a
bit longer.
* A few minor related touch-ups necessary to force some older
dependencies on the bare Ubuntu runner.

---------

Signed-off-by: Larry Gritz <lg@larrygritz.com>
Signed-off-by: Vlad (Kuzmin) Erium <libalias@gmail.com>
ssh4net pushed a commit to ssh4net/OpenImageIO that referenced this pull request Apr 2, 2026
…cademySoftwareFoundation#5119)

TL;DR:
* Bump ASWF containers to the latest versions for their years.
* Move the "oldest" and "hobbled" tests off the 2022 containers
entirely, do as close as possible to equivalent on Unbuntu.

Detailed explanation follows:

First of all, bump to the latest ASWF docker containers for each year.
We had been locking down, but hadn't bumped to the latest for a while.
(Exception: leave the sanitizer test where it is -- the newer containers
have additional checks that are catching UB that I am tracking down
separately.)

Also, we are trying to reduce the surface area of the CentOS 7-based
2022 aswf-docker containers, which are getting long in the tooth, cannot
upgrade to the latest "actions" (because of a tricky interplay between
runner configuration, node version the actions require, and glibc on the
old containers), and may have a limited time that they will continue
working.

In most film studios, CentOS is long gone or taking its last breaths, so
being able to support and test on 2022 era dependencies and OS distros
is of dwindling relevance. We do, however, want to keep testing versus
the oldest supported versions we can muster for many major dependencies.

So to this end, this PR also does the following:

* Move three tests from running in the 2022 containers to just running
on bare Ubutu and by hook or by crook using the right dependencies:
- the "oldest" versions we claim to support for as much of the toolchain
toolchain and dependencies as is easily achievable, built with gcc
  - and the same, built with clang
- the "hobbled" test, which is similar to the "oldest" test but with as
many of the optional dependencies missing or disabled, to make sure we
really do build with only required dependencies (this also is the test
build for no SIMD use)
* Keep two last tests running on 2022 containers, these are only for the
purpose of testing "pure" CentOS VFX Platform 2022 compliance for just a
bit longer.
* A few minor related touch-ups necessary to force some older
dependencies on the bare Ubuntu runner.

---------

Signed-off-by: Larry Gritz <lg@larrygritz.com>
Signed-off-by: Vlad (Kuzmin) Erium <libalias@gmail.com>
Signed-off-by: Vlad <shaamaan@gmail.com>
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