-
Notifications
You must be signed in to change notification settings - Fork 298
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
Use script to install ARM version of .NET on ARM because of a UseDotNet bug #3037
base: main
Are you sure you want to change the base?
Conversation
@MichelZ Maybe you can use the VS Code AzureDevops YAML validator 😄 ? |
Today I learned.... Thanks! |
@MichelZ it just got too painful watching 😆 |
@David-Engel Is this something that's interesting or shall I abandon this one?
If it's interesting, some packages need to be cached in the nuget source: |
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
Considering all the ARM64 pipeline runs are failing, I am curious if this might resolve it, since I can't repro it on an ARM64 vm. Fingers crossed I added the required packages to the internal feed in time for the pipeline to run. |
As far as I can tell the problems started after the latest .NET SDK updates for 9.0.200, so this somehow feels like a .NET SDK bug |
While I haven't found an exact match, here's another macOS specific issue with dotnet restore: |
@MichelZ well the good news is we fixed the issue with the CI pipeline (rebuilding our ARM64 VM images to get newer version of VS that is compatible with dotnet 9.0.200). So hopefully we can finally get some joy running these 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.
I like the idea, but I'd be nice to polish it up a bit
Write-Host "##vso[task.setvariable variable=DOTNET_ROOT]${NEW_DOTNET_ROOT}" | ||
Write-Host "##vso[task.prependpath]${NEW_DOTNET_ROOT}" | ||
Remove-Item dotnet-install.ps1 -ErrorAction:Ignore | ||
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) |
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.
How about instead of doing this as a condition buried in the task definition, let's move this a level higher and use the ${{ if eq(variables.Agent.OS, 'Windows_NT') }}:
to conditionally include the tasks.
# See the LICENSE file in the project root for more information. # | ||
################################################################################# | ||
parameters: | ||
- name: version |
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.
Since we're working on improving our pipelines (and I'm pushing for some degree of uniformity), can we have these with:
- 4 space indents at each level
- Extra line between parameter definitions and tasks
- Sort parameters alphabetically
- name: version | ||
type: number | ||
default: 9 | ||
- name: sdk |
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.
Why not just have this as a string with values of 'sdk' and 'runtime' - that way when it's passed into the later tasks, we don't have to have if expressions
Looks like there's a bug in the UseDotNet Azure DevOps functionality and it installs x86 .NET on ARM:
microsoft/azure-pipelines-tasks#20300
Adding an install script to resolve this and install the proper version on ARM.
Also, the steps were added twice as prebuild and build. Removed one.
Here you can find the logs showing the x86 install:
https://dev.azure.com/sqlclientdrivers/public/_build/results?buildId=102454&view=logs&j=f62ec789-9893-5f91-3293-e8a10244adaa&t=83eb4f36-b8e6-57c5-1c44-e749ef0d4796
Note: This needs new packages added to the azure devops feed cache:
- microsoft.netcore.app.host.win-arm64 (I guess 8.0 & 9.0?)
##[error]tools\GenAPI\Microsoft.DotNet.GenAPI\Microsoft.DotNet.GenAPI.csproj(0,0): Error NU1301: Failed to retrieve information about 'Microsoft.NETCore.App.Host.win-arm64' from remote source 'https://sqlclientdrivers.pkgs.visualstudio.com/904996cc-6198-4d39-8540-eca72bdf0b7b/_packaging/e8fc87e8-fcf4-4bb0-a818-96a9fdd52378/nuget/v3/flat2/microsoft.netcore.app.host.win-arm64/index.json'.