From b30945fd79f1dbd12e4df7ac9661ae492d8a77f8 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 8 Aug 2024 10:50:34 -0400 Subject: [PATCH 1/8] [ci] Use passwordless auth for darc/maestro Fixes: https://github.com/dotnet/android/issues/9164 Migrates darc/maestro commands to use a passwordless auth flow, as token based authentication is deprecated and will be removed in the future. --- build-tools/automation/azure-pipelines.yaml | 27 +++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 22bd4546be4..68ee35156b0 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -599,23 +599,30 @@ extends: arguments: -c $(XA.Build.Configuration) -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\bootstrap.binlog condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) - - task: DotNetCoreCLI@2 + - task: AzureCLI@2 displayName: generate and publish BAR manifest inputs: - projects: $(System.DefaultWorkingDirectory)\build-tools\create-packs\Microsoft.Android.Sdk.proj - arguments: >- + azureSubscription: "Darc: Maestro Production" + scriptType: pscore + scriptLocation: inlineScript + inlineScript: >- + dotnet build $(System.DefaultWorkingDirectory)\build-tools\create-packs\Microsoft.Android.Sdk.proj -t:PushManifestToBuildAssetRegistry - -p:BuildAssetRegistryToken=$(MaestroAccessToken) -p:OutputPath=$(Build.StagingDirectory)\nuget-signed\ -c $(XA.Build.Configuration) -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\push-bar-manifest.binlog condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) - - powershell: | - $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' - $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content - $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' - & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n - & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --password $(MaestroAccessToken) --azdev-pat $(publishing-dnceng-devdiv-code-r-build-re) + - task: AzureCLI@2 + inputs: + azureSubscription: "Darc: Maestro Production" + scriptType: pscore + scriptLocation: inlineScript + inlineScript: | + $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' + $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content + $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' + & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n + & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) From 5eb8b8acd8f0e5c0ea7f661b51ed1d39f27e924c Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 8 Aug 2024 10:57:13 -0400 Subject: [PATCH 2/8] Update azdev-pat param --- build-tools/automation/azure-pipelines.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 68ee35156b0..378ce841e23 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -622,7 +622,7 @@ extends: $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n - & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 + & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --azdev-pat $(System.AccessToken) displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) From af6be1a02a6d4b4f33cc7c01a46ceb6c0ee935fd Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 8 Aug 2024 14:38:49 -0400 Subject: [PATCH 3/8] Bump MicrosoftDotNetBuildTasksFeedPackageVersion --- build-tools/create-packs/Directory.Build.targets | 4 ++-- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build-tools/create-packs/Directory.Build.targets b/build-tools/create-packs/Directory.Build.targets index 44a5d06c00a..9062956cbae 100644 --- a/build-tools/create-packs/Directory.Build.targets +++ b/build-tools/create-packs/Directory.Build.targets @@ -163,7 +163,7 @@ - + @@ -192,7 +192,7 @@ - https://github.com/dotnet/arcade 70831f0d126fe88b81d7dc8de11358e17a5ce364 - + https://github.com/dotnet/arcade - 67d23f4ba1813b315e7e33c71d18b63475f5c5f8 + 60ae233c3d77f11c5fdb53e570b64d503b13ba59 https://github.com/dotnet/templating diff --git a/eng/Versions.props b/eng/Versions.props index c56a549c098..38bd94242f4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,7 @@ 9.0.0-rc.1.24403.1 9.0.0-rc.1.24403.1 7.0.0-beta.22103.1 - 8.0.0-beta.24225.1 + 9.0.0-beta.24408.2 9.0.0-rc.1.24379.5 $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion) 7.0.100-rc.1.22410.7 From 1b20b4e2d850d9d191edd90fdaac8e70ebbd4bdf Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 8 Aug 2024 22:39:32 -0400 Subject: [PATCH 4/8] Use .NET 9 --- build-tools/automation/azure-pipelines.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 378ce841e23..472e54c07b6 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -549,9 +549,6 @@ extends: os: windows workspace: clean: all - variables: - - ${{ if eq(variables['MicroBuildSignType'], 'Real') }}: - - group: Publish-Build-Assets templateContext: outputs: - output: artifactsDrop @@ -566,6 +563,12 @@ extends: clean: true submodules: recursive + - task: UseDotNet@2 + displayName: Install .NET 9.x + inputs: + version: 9.x + includePreviewVersions: true + # Download symbols to be published to the symbols artifact drop declared above - task: DownloadPipelineArtifact@2 inputs: From a997f0e581d604f0cf440e46a0c390e8ac309f9f Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Fri, 9 Aug 2024 09:47:56 -0400 Subject: [PATCH 5/8] Update/install separately from push --- build-tools/automation/azure-pipelines.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 472e54c07b6..0a7ec5d03bf 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -615,16 +615,19 @@ extends: -c $(XA.Build.Configuration) -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\push-bar-manifest.binlog condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) + - powershell: | + $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' + $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content + $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' + & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n + displayName: update darc + - task: AzureCLI@2 inputs: azureSubscription: "Darc: Maestro Production" scriptType: pscore scriptLocation: inlineScript inlineScript: | - $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' - $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content - $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' - & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --azdev-pat $(System.AccessToken) displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) From 6c2e73be0e75b061719ca919b8ed9ecadc3a3809 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 12 Aug 2024 09:09:23 -0400 Subject: [PATCH 6/8] Debugging --- build-tools/automation/azure-pipelines.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 0a7ec5d03bf..ccfea1c9037 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -606,7 +606,7 @@ extends: displayName: generate and publish BAR manifest inputs: azureSubscription: "Darc: Maestro Production" - scriptType: pscore + scriptType: ps scriptLocation: inlineScript inlineScript: >- dotnet build $(System.DefaultWorkingDirectory)\build-tools\create-packs\Microsoft.Android.Sdk.proj @@ -625,9 +625,11 @@ extends: - task: AzureCLI@2 inputs: azureSubscription: "Darc: Maestro Production" - scriptType: pscore + scriptType: ps scriptLocation: inlineScript inlineScript: | + Write-Host "Adding build to default darc channel" + & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --help & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --azdev-pat $(System.AccessToken) displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) From 92c8c8551b5b19a35984d9d909a98c040197202b Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 12 Aug 2024 12:36:51 -0400 Subject: [PATCH 7/8] Don't wait for publishing job success --- build-tools/automation/azure-pipelines.yaml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index ccfea1c9037..9b53d2e96d0 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -615,22 +615,17 @@ extends: -c $(XA.Build.Configuration) -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\push-bar-manifest.binlog condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) - - powershell: | - $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' - $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content - $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' - & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n - displayName: update darc - - task: AzureCLI@2 inputs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: inlineScript inlineScript: | - Write-Host "Adding build to default darc channel" - & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --help - & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --publishing-infra-version 3 --azdev-pat $(System.AccessToken) + $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' + $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content + $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' + & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n + & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --no-wait --publishing-infra-version 3 --azdev-pat $(System.AccessToken) displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true')) From b19ec8071ff34049893a6fd01e0a4feebda0ad50 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 13 Aug 2024 09:33:13 -0400 Subject: [PATCH 8/8] Use ci param --- build-tools/automation/azure-pipelines.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index 9b53d2e96d0..b84311af3b6 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -625,7 +625,7 @@ extends: $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json' & dotnet tool update microsoft.dotnet.darc --version "$darcVersion" --add-source "$arcadeServicesSource" --tool-path $(Agent.ToolsDirectory)\darc -v n - & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --no-wait --publishing-infra-version 3 --azdev-pat $(System.AccessToken) + & $(Agent.ToolsDirectory)\darc\darc add-build-to-channel --default-channels --id $(BARBuildId) --ci --publishing-infra-version 3 --azdev-pat $(System.AccessToken) displayName: add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushXAPackagesToMaestro }}', 'true'))