Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows-2022 version 20241113.3.0 breaks our build #11016

Open
2 of 15 tasks
mihnita opened this issue Nov 21, 2024 · 4 comments
Open
2 of 15 tasks

windows-2022 version 20241113.3.0 breaks our build #11016

mihnita opened this issue Nov 21, 2024 · 4 comments

Comments

@mihnita
Copy link

mihnita commented Nov 21, 2024

Description

The build fails with an error in a Visual Studio file we don't control:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\AppxPackage\Microsoft.AppXPackage.Targets(225,25): error MSB4184: The expression "[MSBuild]::VersionGreaterThanOrEquals('', 9.0)" cannot be evaluated. Version string was not in a correct format. [D:\a\icu\icu\icu4c\source\data\makedata_uwp.vcxproj]

The same project worked with a slightly older image version.

It is regular C++ project.

The MSVC targets fail "randomly" (in fact depending on the image version).

Compare this run https://github.com/unicode-org/icu/actions/runs/11937265609/
With 5 failures out of 9 windows-msvc-* targets

Vs https://github.com/unicode-org/icu/actions/runs/11942268869/
With 8 failures out of 9 windows-msvc-* targets

Just hours distance.

And in the first example (with 5 failures) you can see that in the exact same run
the passing jobs use an older image version (20241021.1.0) and the failing ones use a new version (20241113.3.0)

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022

Image version and build link

Failure: https://github.com/unicode-org/icu/actions/runs/11942268869/job/33288929816
Success: https://github.com/unicode-org/icu/actions/runs/11937265609/job/33272850958

Here is a diff (red is the failure, green is the successful build):

<   Version: 20241113.3.0
<   Included Software: https://github.com/actions/runner-images/blob/win22/20241113.3/images/windows/Windows2022-Readme.md
<   Image Release: https://github.com/actions/runner-images/releases/tag/win22%2F20241113.3
---
>   Version: 20241021.1.0
>   Included Software: https://github.com/actions/runner-images/blob/win22/20241021.1/images/windows/Windows2022-Readme.md
>   Image Release: https://github.com/actions/runner-images/releases/tag/win22%2F20241021.1

...

< MSBuild version 17.12.6+db5f6012c for .NET Framework
---
> MSBuild version 17.11.9+a69bbaaf5 for .NET Framework

...

"D:\a\icu\icu\icu4c\source\allinone\allinone.sln" (default target) (1) ->
"D:\a\icu\icu\icu4c\source\i18n\i18n_uwp.vcxproj.metaproj" (default target) (57) ->
"D:\a\icu\icu\icu4c\source\i18n\i18n_uwp.vcxproj" (default target) (60) ->
(Link target) ->
  LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification [D:\a\icu\icu\icu4c\source\i18n\i18n_uwp.vcxproj]

< "D:\a\icu\icu\icu4c\source\allinone\allinone.sln" (default target) (1) ->
< "D:\a\icu\icu\icu4c\source\data\makedata_uwp.vcxproj" (default target) (56) ->
<   C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\AppxPackage\Microsoft.AppXPackage.Targets(225,25): error MSB4184: The expression "[MSBuild]::VersionGreaterThanOrEquals('', 9.0)" cannot be evaluated. Version string was not in a correct format. [D:\a\icu\icu\icu4c\source\data\makedata_uwp.vcxproj]
< 
<     412 Warning(s)
<     1 Error(s)
< 
< Time Elapsed 00:06:14.94
< Error: Process completed with exit code 1.
---
>     412 Warning(s)
>     0 Error(s)
> 
> Time Elapsed 00:06:06.51

Is it regression?

20241021.1.0, https://github.com/unicode-org/icu/actions/runs/11937265609/job/33272850958

Expected behavior

Expected the build to finish without failures, as it did just hours before, with a different image.

Actual behavior

Fails with an error in a Visual Studio file that we don't control:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\AppxPackage\Microsoft.AppXPackage.Targets(225,25): error MSB4184: The expression "[MSBuild]::VersionGreaterThanOrEquals('', 9.0)" cannot be evaluated. Version string was not in a correct format.

Repro steps

Run the action in the link with new image (20241113.3.0) / old image (20241021.1.0)

@mihnita
Copy link
Author

mihnita commented Nov 21, 2024

According to this older issues:

TLDR:
"Unfortunately it`s impossible to specify older version of runner-images during workflow"

Is it still the case that we can't specify an image version?

This is quite inconvenient. It is blocking the merging of all PRs.

Looking at all the other windows 2022 issues reported with this image version (20241113.3.0), any chance to revert it?

Thank you very much,
Mihai

@mihnita
Copy link
Author

mihnita commented Nov 21, 2024

I tried building it on my Windows machine (Win 11 Pro).
Which has the same Visual Studio version, with the same MSBuild version (17.12.6+db5f6012c)

And I get the exact same error in the same file, Microsoft.AppxPackage.Targets

The failing statement is:

<RuntimeIdentifiers Condition="'$(RuntimeIdentifiers)' == ''
                               AND '$(TargetPlatformIdentifier)' == 'Windows'
                               AND $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), '9.0'))">win-x86;win-x64;win-arm64</RuntimeIdentifiers>

Removing the test on version solves the problem:

<RuntimeIdentifiers Condition="'$(RuntimeIdentifiers)' == ''
                               AND '$(TargetPlatformIdentifier)' == 'Windows'">win-x86;win-x64;win-arm64</RuntimeIdentifiers>

I am not saying this is a real solution.
But it shows that the problem is indeed in that file, and not in our project.

The line is new. I compared with the same file from a Windows snapshot.

And since it also happen on my machine, on a regular, public version of Visual Studio,
it is very likely that it affect many other VS users, not just GitHub.

It might be that the VS team is already aware and they have a fix.
But if not, then maybe reverting this image is a quick temporary fix.

@RaviAkshintala RaviAkshintala self-assigned this Nov 21, 2024
@RaviAkshintala
Copy link
Contributor

@mihnita Thank you for bringing this issue to our attention. We are looking into this issue and will update you on this issue after investigating

@rp9-next
Copy link

FWIW, I believe both of the below issues (and this one) are related to Visual Studio 17.12 update in the windows-2022 images:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants