From 1589504b61d883492c3bab060d29d9c5163cf6c5 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 10:07:21 -0500 Subject: [PATCH 01/10] Force full build in PR --- eng/pipelines/vmr-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml index 15cc40fc4..9ae5ca6c3 100644 --- a/eng/pipelines/vmr-build.yml +++ b/eng/pipelines/vmr-build.yml @@ -58,7 +58,7 @@ stages: ${{ if eq(variables.isSourceOnlyBuild, 'true') }}: scope: ultralite ${{ else }}: - scope: lite + scope: full # In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate # that the PR can be merged and later synchronized into the VMR without problems. From 87ec7d3c6163bb54a921d9db272f4ec6dff22356 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 10:09:35 -0500 Subject: [PATCH 02/10] Try enabling cross builds --- eng/pipelines/templates/stages/vmr-build.yml | 74 ++++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index 6b8bc1fca..68ecbf184 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -362,42 +362,42 @@ stages: # Cross builds are currently failing - # - template: ../jobs/vmr-build.yml - # parameters: - # buildName: MarinerCross - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # architecture: x64 - # pool: - # name: ${{ variables.defaultPoolName }} - # demands: ${{ variables.defaultPoolDemandsLinux }} - # container: ${{ variables.marinerX64CrossContainer }} - # crossRootFs: '/crossrootfs/x64' - # targetOS: linux - # targetArchitecture: x64 + - template: ../jobs/vmr-build.yml + parameters: + buildName: Mariner_x64_Cross_x64 + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: x64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemandsLinux }} + container: ${{ variables.marinerX64CrossContainer }} + crossRootFs: '/crossrootfs/x64' + targetOS: linux + targetArchitecture: x64 - # - template: ../jobs/vmr-build.yml - # parameters: - # buildName: MarinerCross - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # architecture: arm64 - # pool: - # name: ${{ variables.defaultPoolName }} - # demands: ${{ variables.defaultPoolDemandsLinux }} - # container: ${{ variables.marinerArm64CrossContainer }} - # crossRootFs: '/crossrootfs/arm64' - # targetOS: linux - # targetArchitecture: arm64 + - template: ../jobs/vmr-build.yml + parameters: + buildName: Mariner_x64_Cross_arm64 + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: arm64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemandsLinux }} + container: ${{ variables.marinerArm64CrossContainer }} + crossRootFs: '/crossrootfs/arm64' + targetOS: linux + targetArchitecture: arm64 - # - template: ../jobs/vmr-build.yml - # parameters: - # buildName: OSXCross - # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - # vmrBranch: ${{ variables.VmrBranch }} - # architecture: arm64 - # pool: - # vmImage: ${{ variables.defaultPoolNameMac }} - # container: '' - # targetOS: osx - # targetArchitecture: arm64 + - template: ../jobs/vmr-build.yml + parameters: + buildName: OSX_x64_Cross_arm64 + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: arm64 + pool: + vmImage: ${{ variables.defaultPoolNameMac }} + container: '' + targetOS: osx + targetArchitecture: arm64 From d437a7c55b765e564e4f3740affafe8f82f7d3c6 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 11:32:45 -0500 Subject: [PATCH 03/10] Revert "Force full build in PR" This reverts commit 1589504b61d883492c3bab060d29d9c5163cf6c5. --- eng/pipelines/vmr-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml index 9ae5ca6c3..15cc40fc4 100644 --- a/eng/pipelines/vmr-build.yml +++ b/eng/pipelines/vmr-build.yml @@ -58,7 +58,7 @@ stages: ${{ if eq(variables.isSourceOnlyBuild, 'true') }}: scope: ultralite ${{ else }}: - scope: full + scope: lite # In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate # that the PR can be merged and later synchronized into the VMR without problems. From f89a645222bd4677ead28b138840c140d9a219b9 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 11:35:33 -0500 Subject: [PATCH 04/10] Fix VMR cross job names --- eng/pipelines/templates/stages/vmr-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index 68ecbf184..a9ca45447 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -350,7 +350,7 @@ stages: - template: ../jobs/vmr-build.yml parameters: - buildName: OSX + buildName: OSX_x64_Cross isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 @@ -364,7 +364,7 @@ stages: - template: ../jobs/vmr-build.yml parameters: - buildName: Mariner_x64_Cross_x64 + buildName: Mariner_x64_Cross isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 @@ -392,7 +392,7 @@ stages: - template: ../jobs/vmr-build.yml parameters: - buildName: OSX_x64_Cross_arm64 + buildName: OSX_x64_Cross isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: arm64 From 4af44919be798c0c119ddfc7ec2cfa49595b8626 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 11:35:54 -0500 Subject: [PATCH 05/10] Only disable known-broken lane --- eng/pipelines/templates/stages/vmr-build.yml | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index a9ca45447..98887f40a 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -360,8 +360,6 @@ stages: targetOS: osx targetArchitecture: x64 - # Cross builds are currently failing - - template: ../jobs/vmr-build.yml parameters: buildName: Mariner_x64_Cross @@ -376,19 +374,21 @@ stages: targetOS: linux targetArchitecture: x64 - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_arm64 - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: - name: ${{ variables.defaultPoolName }} - demands: ${{ variables.defaultPoolDemandsLinux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - targetOS: linux - targetArchitecture: arm64 + # Mariner x64->non-x64 builds are currently broken, see https://github.com/dotnet/source-build/issues/3698 + + # - template: ../jobs/vmr-build.yml + # parameters: + # buildName: Mariner_x64_Cross + # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + # vmrBranch: ${{ variables.VmrBranch }} + # architecture: arm64 + # pool: + # name: ${{ variables.defaultPoolName }} + # demands: ${{ variables.defaultPoolDemandsLinux }} + # container: ${{ variables.marinerArm64CrossContainer }} + # crossRootFs: '/crossrootfs/arm64' + # targetOS: linux + # targetArchitecture: arm64 - template: ../jobs/vmr-build.yml parameters: From f16b1652a6f85cdd7a1e92c1faaf8aeebbaf283a Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Feb 2024 15:54:16 -0500 Subject: [PATCH 06/10] Revert "Revert "Force full build in PR"" This reverts commit d437a7c55b765e564e4f3740affafe8f82f7d3c6. --- eng/pipelines/vmr-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml index 15cc40fc4..9ae5ca6c3 100644 --- a/eng/pipelines/vmr-build.yml +++ b/eng/pipelines/vmr-build.yml @@ -58,7 +58,7 @@ stages: ${{ if eq(variables.isSourceOnlyBuild, 'true') }}: scope: ultralite ${{ else }}: - scope: lite + scope: full # In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate # that the PR can be merged and later synchronized into the VMR without problems. From 09cdb2bb1c0ebb73869414e04fb5d0a054fec36c Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Feb 2024 09:52:33 -0500 Subject: [PATCH 07/10] Create per-arch artifact upload folder --- eng/pipelines/templates/jobs/vmr-build.yml | 1 + eng/pipelines/templates/steps/vmr-pull-updates.yml | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index 5575d778b..98f21b224 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -134,6 +134,7 @@ jobs: parameters: vmrPath: ${{ parameters.vmrPath }} vmrBranch: ${{ parameters.vmrBranch }} + architecture: ${{ parameters.architecture }} targetRef: $(Build.SourceVersion) # Synchronize the current installer commit - ${{ if parameters.buildFromArchive }}: diff --git a/eng/pipelines/templates/steps/vmr-pull-updates.yml b/eng/pipelines/templates/steps/vmr-pull-updates.yml index 86a6cbd64..01569afa6 100644 --- a/eng/pipelines/templates/steps/vmr-pull-updates.yml +++ b/eng/pipelines/templates/steps/vmr-pull-updates.yml @@ -17,6 +17,11 @@ parameters: type: string default: $(Agent.BuildDirectory)/vmr +- name: architecture + displayName: Architecture used for build artifacts + type: string + default: 'x64' + steps: - checkout: self displayName: Clone dotnet/installer @@ -37,12 +42,12 @@ steps: workingDirectory: ${{ parameters.vmrPath }} - script: | - mkdir -p ${{ parameters.vmrPath }}/artifacts/x64/Release + mkdir -p ${{ parameters.vmrPath }}/artifacts/${{ parameters.architecture }}/Release displayName: Create artifacts folder (Unix) condition: ne(variables['Agent.OS'], 'Windows_NT') - powershell: | - New-Item -ItemType Directory -Path ${{ parameters.vmrPath }}/artifacts/x64/Release + New-Item -ItemType Directory -Path ${{ parameters.vmrPath }}/artifacts/${{ parameters.architecture }}/Release displayName: Create artifacts folder (Windows) condition: eq(variables['Agent.OS'], 'Windows_NT') From ad1117e8771239fbe911eb40bfd4c08439873b2e Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Feb 2024 11:52:41 -0500 Subject: [PATCH 08/10] Turn off always-full-build. --- eng/pipelines/vmr-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml index 9ae5ca6c3..15cc40fc4 100644 --- a/eng/pipelines/vmr-build.yml +++ b/eng/pipelines/vmr-build.yml @@ -58,7 +58,7 @@ stages: ${{ if eq(variables.isSourceOnlyBuild, 'true') }}: scope: ultralite ${{ else }}: - scope: full + scope: lite # In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate # that the PR can be merged and later synchronized into the VMR without problems. From 6cdabde2f929ff233de8bb0af8242611e1967cdd Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Feb 2024 13:14:08 -0500 Subject: [PATCH 09/10] Rename job --- eng/pipelines/templates/stages/vmr-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index 98887f40a..c782ff615 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -350,7 +350,7 @@ stages: - template: ../jobs/vmr-build.yml parameters: - buildName: OSX_x64_Cross + buildName: OSX isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 From 2a69655b86f071f7f19a0f80829af6496c7025de Mon Sep 17 00:00:00 2001 From: Nikola Milosavljevic Date: Wed, 7 Feb 2024 11:01:31 -0800 Subject: [PATCH 10/10] Eliminate System.CommandLine prebuilt package (#18540) --- ...-System.CommandLine-prebuilt-package.patch | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/SourceBuild/patches/nuget-client/0001-Eliminate-System.CommandLine-prebuilt-package.patch diff --git a/src/SourceBuild/patches/nuget-client/0001-Eliminate-System.CommandLine-prebuilt-package.patch b/src/SourceBuild/patches/nuget-client/0001-Eliminate-System.CommandLine-prebuilt-package.patch new file mode 100644 index 000000000..c0bf8cf2b --- /dev/null +++ b/src/SourceBuild/patches/nuget-client/0001-Eliminate-System.CommandLine-prebuilt-package.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nikola Milosavljevic +Date: Tue, 6 Feb 2024 23:44:10 +0000 +Subject: [PATCH] Eliminate System.CommandLine prebuilt package + +Backport: https://github.com/NuGet/NuGet.Client/pull/5625 +--- + eng/Version.Details.xml | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml +index d8352707b..282edfd3c 100644 +--- a/eng/Version.Details.xml ++++ b/eng/Version.Details.xml +@@ -30,6 +30,10 @@ + https://github.com/aspnet/xdt + d4d088b6a9c793525b1a27a119cb66ba4587bb39 + ++ ++ https://github.com/dotnet/command-line-api ++ 02fe27cd6a9b001c8feb7938e6ef4b3799745759 ++ + + https://github.com/dotnet/corefx + 30ab651fcb4354552bd4891619a0bdd81e0ebdbf