diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d7893516ac..e97be1eab9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -14,9 +14,9 @@ - + https://github.com/dotnet/arcade - 9f6799fdc16ae19b3e9478c55b997a6aab839d09 + 60ae233c3d77f11c5fdb53e570b64d503b13ba59 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 5bbe8020cf..e2e29ba328 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -114,7 +114,7 @@ 0.9.0 4.2.3 8.0.3 - 8.0.0-beta.24310.5 + 9.0.0-beta.24408.2 17.6.0 diff --git a/eng/pipelines/common/sdk-insertion.yml b/eng/pipelines/common/sdk-insertion.yml index 1d26eaa690..70b21ec58f 100644 --- a/eng/pipelines/common/sdk-insertion.yml +++ b/eng/pipelines/common/sdk-insertion.yml @@ -5,80 +5,92 @@ parameters: pushMauiPackagesToMaestro: false nugetArtifactName: nuget-signed nugetArtifactPath: $(Build.StagingDirectory)\nuget-signed + dropRetentionDays: 120 jobs: - job: create_artifact_statuses - displayName: Create GitHub Artifact Status and Push to Maestro + displayName: Publish symbols and Push to Maestro timeoutInMinutes: 60 pool: name: ${{ parameters.poolName }} image: ${{ parameters.vmImage }} os: ${{ parameters.os }} - variables: - - group: Publish-Build-Assets + templateContext: + outputs: + - output: artifactsDrop + dropServiceURI: https://devdiv.artifacts.visualstudio.com/DefaultCollection + buildNumber: $(ReleaseDropPrefix)/symbols + dropMetadataContainerName: DropMetadata-shipping-symbols + sourcePath: $(Build.StagingDirectory)\symbols + retentionDays: ${{ parameters.dropRetentionDays }} + toLowerCase: false steps: - checkout: self + + # Download symbols to be published to the symbols artifact drop declared above - task: DownloadPipelineArtifact@2 inputs: - artifactName: ${{ parameters.nugetArtifactName }} - downloadPath: ${{ parameters.nugetArtifactPath }} + artifactName: nuget + downloadPath: $(Build.StagingDirectory)\symbols patterns: | - *.nupkg **/*.snupkg **/additional-assets.zip + displayName: Download symbols + - task: DownloadPipelineArtifact@2 inputs: - artifactName: vs-msi-nugets - downloadPath: ${{ parameters.nugetArtifactPath }} - - template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions - parameters: - githubToken: $(github--pat--vs-mobiletools-engineering-service2) - githubContext: $(NupkgCommitStatusName) - blobName: $(NupkgCommitStatusName) - packagePrefix: maui - artifactsPath: ${{ parameters.nugetArtifactPath }} - yamlResourceName: yaml-templates - - template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions - parameters: - githubToken: $(github--pat--vs-mobiletools-engineering-service2) - githubContext: $(VSDropCommitStatusName) - blobName: $(VSDropCommitStatusName) - packagePrefix: maui - artifactsPath: $(Build.StagingDirectory)/$(VSDropCommitStatusName) - yamlResourceName: yaml-templates - downloadSteps: - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: vsdrop-signed - downloadPath: $(Build.StagingDirectory)/$(VSDropCommitStatusName) - - template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions - parameters: - githubToken: $(github--pat--vs-mobiletools-engineering-service2) - githubContext: $(MultiTargetVSDropCommitStatusName) - blobName: $(MultiTargetVSDropCommitStatusName) - packagePrefix: maui - artifactsPath: $(Build.StagingDirectory)/$(MultiTargetVSDropCommitStatusName) - yamlResourceName: yaml-templates - downloadSteps: - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: vsdrop-multitarget-signed - downloadPath: $(Build.StagingDirectory)/$(MultiTargetVSDropCommitStatusName) - - task: DotNetCoreCLI@2 + artifactName: DropMetadata-shipping-nugets + downloadPath: $(Build.StagingDirectory)\metadata + displayName: Download nugets drop metadata + + - powershell: | + $jsonContent = Get-Content -Path "$(Build.StagingDirectory)\metadata\VSTSDrop.json" -Raw | ConvertFrom-Json + $dropPrefix = $jsonContent.VstsDropBuildArtifact.VstsDropUrl -replace 'https://devdiv.artifacts.visualstudio.com/DefaultCollection/_apis/drop/drops/' -replace '/nugets' + Write-Host "##vso[task.setvariable variable=ReleaseDropPrefix]$dropPrefix" + displayName: Set variable ReleaseDropPrefix + + # Download nugets drop created by nuget-msi-convert/job/v4.yml and publish to maestro + - task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@1 + displayName: Download $(ReleaseDropPrefix)/nugets + inputs: + dropServiceURI: https://devdiv.artifacts.visualstudio.com/DefaultCollection + buildNumber: $(ReleaseDropPrefix)/nugets + destinationPath: ${{ parameters.nugetArtifactPath }} + + - task: UseDotNet@2 + displayName: Install .NET 9.x + inputs: + version: 9.x + includePreviewVersions: true + + - task: AzureCLI@2 displayName: Generate and publish BAR manifest inputs: - projects: $(Build.SourcesDirectory)\src\Workload\Microsoft.Maui.Sdk\Microsoft.Maui.Sdk.csproj - arguments: >- + azureSubscription: "Darc: Maestro Production" + scriptType: ps + scriptLocation: inlineScript + inlineScript: >- + & dotnet build $(Build.SourcesDirectory)\src\Workload\Microsoft.Maui.Sdk\Microsoft.Maui.Sdk.csproj -t:PushManifestToBuildAssetRegistry - -p:BuildAssetRegistryToken=$(MaestroAccessToken) - -p:OutputPath=$(Build.StagingDirectory)\nuget-signed\ + -p:OfficialBuildId=$(_BuildOfficalId) + -p:OutputPath=${{ parameters.nugetArtifactPath }} -v:n -bl:$(Build.StagingDirectory)\binlogs\push-bar-manifest.binlog + # Execute outside of the source directory to avoid any conflicting global.json file + workingDirectory: $(Build.SourcesDirectory)\.. condition: and(succeeded(), eq('${{ parameters.pushMauiPackagesToMaestro }}', '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: ps + 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) --ci --publishing-infra-version 3 --azdev-pat $(System.AccessToken) + # Execute outside of the source directory to avoid any conflicting global.json file + workingDirectory: $(Build.SourcesDirectory)\.. displayName: Add build to default darc channel condition: and(succeeded(), eq('${{ parameters.pushMauiPackagesToMaestro }}', 'true')) diff --git a/eng/pipelines/common/sign.yml b/eng/pipelines/common/sign.yml index cb8fbab9d1..6087fdb365 100644 --- a/eng/pipelines/common/sign.yml +++ b/eng/pipelines/common/sign.yml @@ -22,7 +22,7 @@ stages: use1ESTemplate: true usePipelineArtifactTasks: true - - template: nuget-msi-convert/job/v3.yml@yaml-templates + - template: nuget-msi-convert/job/v4.yml@yaml-templates parameters: yamlResourceName: yaml-templates artifactName: nuget-signed @@ -42,7 +42,7 @@ stages: inputs: TargetFolders: | $(Build.ArtifactStagingDirectory)\bin\manifests - $(Build.ArtifactStagingDirectory)\bin\manifests-multitarget + $(Build.ArtifactStagingDirectory)\bin\manifests-packs $(Build.ArtifactStagingDirectory)\bin\msi-nupkgs ExcludeSNVerify: true ApprovalListPathForCerts: $(Build.ArtifactStagingDirectory)\sign-verify\SignVerifyIgnore.txt diff --git a/eng/pipelines/common/variables.yml b/eng/pipelines/common/variables.yml index 1f5de7bfbd..24be90ff09 100644 --- a/eng/pipelines/common/variables.yml +++ b/eng/pipelines/common/variables.yml @@ -1,6 +1,8 @@ variables: - name: BuildVersion value: $[counter('buildversion-counter', 5000)] +- name: _BuildOfficalId + value: $[ format('{0}.{1}', format('{0:yyyyMMdd}', pipeline.startTime), counter(format('{0:yyyyMMdd}', pipeline.startTime), 1) )] - name: NUGET_VERSION value: 6.4.0 - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE diff --git a/eng/pipelines/maui-release.yml b/eng/pipelines/maui-release.yml index 69990fc47e..5a1d5821fc 100644 --- a/eng/pipelines/maui-release.yml +++ b/eng/pipelines/maui-release.yml @@ -144,9 +144,7 @@ extends: value: $(Build.SourcesDirectory)/build.cmd -ci - name: _BuildConfig value: Release - - name: _BuildOfficalId - value: $[ format('{0}.{1}', format('{0:yyyyMMdd}', pipeline.startTime), counter(format('{0:yyyyMMdd}', pipeline.startTime), 1) )] - + steps: - template: /eng/pipelines/common/pack.yml@self parameters: diff --git a/src/Workload/Shared/Maestro.targets b/src/Workload/Shared/Maestro.targets index 42405928f5..faad2e2b5f 100644 --- a/src/Workload/Shared/Maestro.targets +++ b/src/Workload/Shared/Maestro.targets @@ -36,7 +36,7 @@ - + +