actions / runner-images

GitHub Actions runner images
MIT License
9.17k stars 2.84k forks source link

update cmake to >= 3.29.2 #9680

Closed rursprung closed 1 month ago

rursprung commented 1 month ago

Tool name

cmake

Tool license

BSD

Add or update?

Desired version

3.29.2

Approximate size

No response

Brief description of tool

No response

URL for tool's homepage

No response

Provide a basic test case to validate the tool's functionality.

No response

Platforms where you need the tool

Runner images where you need the tool

Can this tool be installed during the build?

No response

Tool installation time in runtime

No response

Are you willing to submit a PR?

No response

rursprung commented 1 month ago

CMake 3.29.1 - which is currently packaged on the runners - contains a regression which causes a variety of projects to fail building. CMake 3.29.2 reverts this and has been released yesterday. please urgently update CMake on the runner images to >= 3.29.2 so that these projects (and the ones depending on them) build fine with the default CMake and don't need to manually install a specific version.

some background from vcpkg discussions: https://github.com/microsoft/vcpkg/issues/37968 & https://github.com/microsoft/vcpkg/pull/38144 (see esp. the linked original tickets for further information)

erik-bershel commented 1 month ago

Hey @rursprung!

Thank you for arising this issue. It is often only through the efforts of users that we can learn about some updates or problems.

This week's deployment has already ended, we will not start a new one on Friday - this brings more issues and cons than pros. Starting Monday we will begin rolling out new images. Rolling back to the previous image is also not an option in this case - the Ubuntu images contained some major blockers.

Generally task requires no action in terms of updating. On Ubuntu images we always install the latest available release from the Kitware/CMake repository. On Windows images, Cmake is provided as part of the MinGW installation, the latest available package from the Chocolatey repository, and as part of the Visual Studio installation. On macOS Cmake is installed from Homebrew. Cmake is also part of the Android installation on all systems, but the situation there is different and does not overlap with the stated problem. In all cases, we cannot speed up the availability of more recent Cmake in the repository.

I will keep this issue open for better user awareness until the end of the day.

kklobe commented 1 month ago

for anyone needing a quick fix, this CMake runner action can help: https://github.com/marketplace/actions/actions-setup-cmake

I just added

      - name: Setup CMake
        uses: jwlawson/actions-setup-cmake@v2
        with:
          cmake-version: '3.29.2'

to our runner script and it worked great.

erik-bershel commented 1 month ago

There is an alternative method, seems a bit faster:

jobs:
  test:
    strategy:
      matrix:
        os: [ macos-14, macos-13, macos-12, windows-2019, windows-2022, ubuntu-20.04, ubuntu-22.04 ]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: lukka/get-cmake@latest
      with:
        cmakeVersion: "3.29.2" 

Result:

Screenshot 2024-04-12 at 17 43 50

Using previous:

jobs:
  test:
    strategy:
      matrix:
        os: [ macos-14, macos-13, macos-12, windows-2019, windows-2022, ubuntu-20.04, ubuntu-22.04 ]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: jwlawson/actions-setup-cmake@v2
       with:
         cmake-version: '3.29.2'

I've got next:

Screenshot 2024-04-12 at 17 46 52
jjerphan commented 1 month ago

Hello @erik-bershel,

Thank you for your work on the runner image. I am afraid the sporadic silent update to the Windows Runner image have been quite distrustful in the past. :confused:

I believe being able to choose the version of the Windows runner image to use would greatly be appreciated. Is there a way to request this option?

Thank you.

erik-bershel commented 1 month ago

Hey @jjerphan!

I am afraid the sporadic silent update to the Windows Runner image have been quite distrustful in the past. 😕

It's not so silent and sporadic as you say. Every update starts with publishing config changes in this repo. Unfortunately, no one is interested in these proposed changes until they reach production.

I believe being able to choose the version of the Windows runner image to use would greatly be appreciated. Is there a way to request this option?

This is a highly demanded option, yes. Unfortunately, there is no such opportunity now and I have no information about the possible timing of its implementation or about plans for its implementation in principle. If such an opportunity suddenly arises, we will definitely notify the community.

jjerphan commented 1 month ago

Thank you for those pieces of information.

For now, I guess the best solution is that users watch releases of the new images to be notified of toolchains' changes and prepare to potential regressions.

rursprung commented 1 month ago

for anyone still looking at this issue: the new runner images seem to have been promoted a few hours ago and now include CMake 3.29.2, thus resolving the issue.