-
Notifications
You must be signed in to change notification settings - Fork 10.1k
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
Add helix-matrix.yml and windows arm 64 helix queue #22002
Conversation
This shouldn't affect anything for the ci builds, but I need to have a yml in master to play with splitting the additional helix queues into a separate pipeline |
👀 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you added a pipeline using this YAML?
So as far as I can tell, I can only create a pipeline from the UI or specify a yaml file that's already in the repo, I guess I can try doing this directly in the azdo UI first with the contents of this PR |
Ah okay never mind, looks like I can add a pipeline against this branch, i'll convert this to draft then and remark it as ready for review once its got everything passing |
It's the same pipeline as the official (internal) builds today. |
Forgot to ask: Shouldn't this PR remove PR / rolling build differences in ci.yml? |
Yeah once the new pipeline is working I'll update the ci yml |
@dougbu have you ever seen any issues with the submodules not updating properly? The new pipeline looks like its failing to build due to the submodules missing in sources for messagePack and google? The helix jobs are passing fine in the existing pipelines in this branch too, so I'm puzzled, is there a hidden pipelines configuration UI/settings page that has extra stuff I need to copy over to the new one?
|
Alright, for posterity, when setting up a new pipeline, there's additional stuff that needs to be configured in the 'high discover-able' buried settings page found via edit -> triggers -> YAML -> Get Sources (our non default settings are: clean = true, all build directories, checkout submodules, any nested submodules within) |
Everything fails miserably on the windows 10 arm64 queue, we are building on linux arm64 though, so I'll try switching to a windows agent to see if that helps |
Weird, errors were all in restore, so might be something else:
|
Progress, looks like most of the windows arm64 tests are passing now, except for node services and libuv kestrel tests (@Tratcher ) do you have any ideas why libuv would fail to load only on windows arm64 and not the Deblian 9 arm64?
|
No. Looking at the package it has support for both. Any thoughts @halter73? |
Doesn't look like nodejs is supported on win arm64 yet from nodejs/build#1138 It does look like there's an unofficial build support for versions 12+ from https://unofficial-builds.nodejs.org/download/release/v12.15.0/ But i'll just skip these tests on this queue for now and file an issue |
I'm not sure either. You're right that we include a win-arm version of libuv.dll in the Libuv NuGet package. It's at runtimes/win-arm/native/libuv.dll which seems to be the right location. I have no idea why the runtime can't find it. |
@halter73 are you ok if I just skip these tests on the win-arm64 queue for now and file an issue for these tests? |
Could it be related to how we publish/build the helix jobs? We do a single build for arch arm64 and publish to all the helix queues, does this break for libuv since we are using the same publish directory to run tests on both linux arm64 and win arm64? |
I'm OK with that. Are you going to file an issue or should I? |
Thanks you can file the issue @halter73 I'll add the skips to this PR |
I don't think so. Unless it's a self-contained build, I think the publish output should include native assemblies for all RIDs defined in NuGet packages. @sebastienros would know. |
I filed the libuv issue. |
Thanks, I'll probably add a new csproj attribute to skip these, since its a pain to apply skip to tests enbulk, just updating all Facts to conditional facts is painful :/ |
Okay looks like the new pipeline is green finally with the new windows arm64 queue. Marking as ready for review, the question about how often to run this pipeline (every checkin rolling or X times a day?). I also need to remove the PR trigger before merging |
@@ -30,8 +30,8 @@ echo "Installing Runtime" | |||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture %$arch% -Runtime dotnet -Version %$runtimeVersion% -InstallDir %DOTNET_ROOT%" | |||
|
|||
set exit_code=0 | |||
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." | |||
dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources | |||
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --ignore-failed-sources..." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@BrennanConroy I had to switch feeds for some of the packages to restore properly on the windows arm queue, not sure why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Link to a failure otherwise I have no context to help
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is super strange. I'm not against this change, but I would like to know why that package is trying to be resolved :D
For frequency I suggest checking with Helix folks and see what they recommend to not overload our available arm64 machine pool. |
@HaoK I moved the pipeline into the \dotnet\aspnetcore folder in AzDO, together w/ our other public pipelines. |
- all work now done in "Checkout dotnet/aspnetcore" step - reconfigured pipeline based on #22002 (comment)
- all work now done in "Checkout dotnet/aspnetcore" step - reconfigured pipeline based on #22002 (comment)
displayName: Build shared fx | ||
- script: .\restore.cmd -ci /p:BuildInteropProjects=true | ||
displayName: Restore interop projects | ||
- script: .\build.cmd -ci -nobl -NoRestore -test -noBuildJava -all -projects eng\helix\helix.proj /p:IsHelixDaily=true /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may have missed an earlier discussion. Why is -noBuildJava
needed here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question, looks like we have a difference between the quarantined tests and what was in the normal ci.yml
I copied this from the quarantined test yml which had that...
https://github.com/dotnet/aspnetcore/blob/master/.azure/pipelines/quarantined-tests.yml#L38
@BrennanConroy do we need to build java for the signalr tests?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@BrennanConroy do we need to build java for the signalr tests?
I believe so. Also, is this pipeline running anywhere? I don't see a run of this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be here, https://dev.azure.com/dnceng/public/_build?definitionId=837&_a=summary
I'll add back the java flags on those pipelines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah new pipeline name, that's why I didn't see it.
/fyi @mmitche the current longest job in official builds doesn't do any testing. |
Wait looking at this build, it looks like we aren't running any helix tests on PRs and rolling builds anymore. I think we still want to run the most common platforms (say Win10 and Ubuntu 18.04), just not the full matrix, since the chance of a PR breaking a specific platform is low, and there are constraints on machines. |
Yeah, the helix tests are run only in PR and in the helix-matrix twice a day. I can easily tweak things to have the PR checks run on all builds including rolling, I'll open a PR for that now |
Thanks - the idea is for those rolling builds to match the PR builds as closely as possible so that we have an idea of the baseline reliability of PR builds (without having to categorize failures as caused by the PR, or caused by flakiness) |
Initial clone of the daily helix jobs to a new yaml for a new azdo pipeline