Skip to content

Commit c50f383

Browse files
authored
[ci] Use dotnet to create workload .pkg (#5842)
Commit 12edc2c introduced a feature that seems to only be available in newer versions of MSBuild: <Import Project="Sdk.props" Sdk="Microsoft.DotNet.SharedFramework.Sdk" Version="$(MicrosoftDotNetBuildTasksFeedPackageVersion)" /> This caused an issue during the `dotnet_create_pkg` job on our Xamarin.Android pipeline, which uses a different machine pool than Xamarin.Android-PR: /Users/builder/azdo/_work/2/s/xamarin-android/build-tools/create-packs/Directory.Build.targets(11,3): error : Version 5.0.201 of the .NET Core SDK requires at least version 16.8.0 of MSBuild. The current available version of MSBuild is 16.6.0.52201. Change the .NET Core SDK specified in global.json to an older version that requires the MSBuild version currently available. "/Users/builder/azdo/_work/2/s/xamarin-android/Xamarin.Android.sln" (CreateWorkloadInstallers target) (1) -> "/Users/builder/azdo/_work/2/s/xamarin-android/build-tools/create-packs/Microsoft.Android.Sdk.proj" (ExtractWorkloadPacks target) (2) -> /Users/builder/azdo/_work/2/s/xamarin-android/build-tools/create-packs/Directory.Build.targets(11,31): error MSB4236: The SDK 'Microsoft.DotNet.SharedFramework.Sdk/$(MicrosoftDotNetBuildTasksFeedPackageVersion)' specified could not be found. [/Users/builder/azdo/_work/2/s/xamarin-android/build-tools/create-packs/Microsoft.Android.Sdk.proj] I believe this wasn't seen on the PR bots as some of them now have the a newer mono installed which supports MSBuild 16.9 (see PR #5806, which is still waiting for designer test fixes). Fix this issue by using `dotnet build` on macOS when we build the `CreateWorkloadInstallers` target. Finally, I hit a considerable amount of disk space related issues when testing this PR which will hopefully be alleviated by migrating to the MicroBuild Virtual Machine Scale Set pool. I've also moved the Build Asset Registry manifest promotion to the end of the job so that it won't run multiple times when retrying a failed job.
1 parent 9698472 commit c50f383

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

build-tools/automation/azure-pipelines.yaml

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,12 +1283,14 @@ stages:
12831283
configuration: $(XA.Build.Configuration)
12841284
msbuildArguments: /t:Restore /bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/restore-create-pkg.binlog
12851285

1286-
- task: MSBuild@1
1287-
displayName: msbuild /t:CreateWorkloadInstallers
1286+
- task: DotNetCoreCLI@2
1287+
displayName: create workload .pkg installer
12881288
inputs:
1289-
solution: $(System.DefaultWorkingDirectory)/xamarin-android/Xamarin.Android.sln
1290-
configuration: $(XA.Build.Configuration)
1291-
msbuildArguments: /t:CreateWorkloadInstallers /p:SignType=$(MicroBuildSignType) /p:MicroBuildOverridePluginDirectory=$(Build.StagingDirectory)/MicroBuild/Plugins /bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/msbuild-workload.binlog
1289+
projects: $(System.DefaultWorkingDirectory)/xamarin-android/Xamarin.Android.sln
1290+
arguments: >-
1291+
-t:CreateWorkloadInstallers -c $(XA.Build.Configuration) -v:n
1292+
-p:SignType=$(MicroBuildSignType) -p:MicroBuildOverridePluginDirectory=$(Build.StagingDirectory)/MicroBuild/Plugins
1293+
-bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/msbuild-workload.binlog
12921294
12931295
- powershell: |
12941296
$pkg = Get-ChildItem -Path "$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/*" -Include *.pkg -File
@@ -1331,7 +1333,7 @@ stages:
13311333
- job: dotnet_create_msi
13321334
displayName: Create .msi and Upload
13331335
dependsOn: dotnet_create_pkg
1334-
pool: VSEng-MicroBuildVS2019
1336+
pool: VSEngSS-MicroBuild2019
13351337
workspace:
13361338
clean: all
13371339
variables:
@@ -1358,24 +1360,6 @@ stages:
13581360
downloadPath: $(System.DefaultWorkingDirectory)\installer-artifacts
13591361
patterns: Microsoft.*.pkg
13601362

1361-
- powershell: >-
1362-
& dotnet build -v:n -c $(XA.Build.Configuration)
1363-
-t:PushManifestToBuildAssetRegistry
1364-
-p:BuildAssetRegistryToken=$(MaestroAccessToken)
1365-
$(System.DefaultWorkingDirectory)\build-tools\create-packs\Microsoft.Android.Sdk.proj
1366-
-bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\push-bar-manifest.binlog
1367-
displayName: generate and publish BAR manifest
1368-
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
1369-
1370-
- powershell: |
1371-
$versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
1372-
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
1373-
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
1374-
& dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n
1375-
& $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --skip-assets-publishing --password $(MaestroAccessToken) --azdev-pat $(publishing-dnceng-devdiv-code-r-build-re)
1376-
displayName: add build to default darc channel
1377-
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
1378-
13791363
- template: yaml-templates\install-microbuild-tooling.yaml
13801364
parameters:
13811365
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
@@ -1415,6 +1399,24 @@ stages:
14151399
parameters:
14161400
condition: and(succeededOrFailed(), eq(variables['MicroBuildSignType'], 'Real'))
14171401

1402+
- powershell: >-
1403+
& dotnet build -v:n -c $(XA.Build.Configuration)
1404+
-t:PushManifestToBuildAssetRegistry
1405+
-p:BuildAssetRegistryToken=$(MaestroAccessToken)
1406+
$(System.DefaultWorkingDirectory)\build-tools\create-packs\Microsoft.Android.Sdk.proj
1407+
-bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\push-bar-manifest.binlog
1408+
displayName: generate and publish BAR manifest
1409+
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
1410+
1411+
- powershell: |
1412+
$versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
1413+
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
1414+
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
1415+
& dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n
1416+
& $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --skip-assets-publishing --password $(MaestroAccessToken) --azdev-pat $(publishing-dnceng-devdiv-code-r-build-re)
1417+
displayName: add build to default darc channel
1418+
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
1419+
14181420
- template: yaml-templates/upload-results.yaml
14191421
parameters:
14201422
solution: build-tools\Xamarin.Android.Tools.BootstrapTasks\Xamarin.Android.Tools.BootstrapTasks.csproj
@@ -1514,7 +1516,7 @@ stages:
15141516
- job: queue_vsix_signing
15151517
displayName: Queue Vsix Signing
15161518
dependsOn: notarize_pkg_upload_storage
1517-
pool: VSEng-MicroBuildVS2019
1519+
pool: VSEngSS-MicroBuild2019
15181520
timeoutInMinutes: 90
15191521
cancelTimeoutInMinutes: 1
15201522
workspace:

0 commit comments

Comments
 (0)