Requested: info on CI test runners #9527
Replies: 5 comments
-
I've again hit this while working on #9622. The TLDR of this request is: what .NET Core and .NET Framework versions, and what JIT versions are used for compiling and running code and tests on CI? There appear to be subtle differences that lead to "runs locally, but not on CI" problems, and it would be nice to catch them earlier. I'd be happy to update the CONTRIBUTOR.md guide with this info. |
Beta Was this translation helpful? Give feedback.
-
Hmm, going through a recent build log showed a link of what's installed on the VM: https://github.com/actions/virtual-environments/blob/win19/20200621.1/images/win/Windows2019-Readme.md. Of note is: Visual Studio Enterprise 2019, version 16.6.30204.135. And literally every .NET Core SDK is available, since 2.1. Surprisingly, only one .NET Framework, so that answers that part of the questions: And this line in the log suggests
And lines like this suggest that it is indeed not the same as using
|
Beta Was this translation helpful? Give feedback.
-
@KevinRansom and @brettfo know the most about this. |
Beta Was this translation helpful? Give feedback.
-
fcs build came from the community, one of these days we will subsume into our build proper. |
Beta Was this translation helpful? Give feedback.
-
Now the FCS build is no longer, which is nice |
Beta Was this translation helpful? Give feedback.
-
I got stuck for a few days trying to understand what goes on in the CI runners. The thing is, some language features and library functions behave differently between x86, x64, RyuJIT, LegacyJIT and x86 JIT (based on Legacy JIT), Mono, dotnet and .NET Framework, Linux vs Mac vs Windows, debug vs release, JIT optimizations on or off, AOT through ngen or otherwise, .NET 5 vs the rest.
Probably all these can be answered if we knew what the CI jobs run in:
Code generation, emitted JIT and emitted IL can be different between versions of JIT and frameworks, this influences many tests.
The Test Guide has just this line:
But that's only the IDE unit tests...
This all boils down to a simple question: when looking at the CI, and/or looking at the logs, it would be very helpful if one could determine what system it is running on.
I'll gladly update the test guide to help future contributors understanding what's what w.r.t. the CI.
PS: here's the mess this can cause when running into the "runs perfectly fine locally but not on CI" situation: #9516.
Beta Was this translation helpful? Give feedback.
All reactions