From eb3704b5d1a19d14762cf29bbdf8985d27c184b6 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 6 Apr 2021 14:25:38 -0700 Subject: [PATCH 1/7] Add CI validation leg for source-build against an image with the tools our source-build partners use to ensure we don't break our source-build partners. --- eng/pipelines/common/platform-matrix.yml | 24 ++++++++++++++++++++++++ eng/pipelines/global-build.yml | 1 + 2 files changed, 25 insertions(+) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 000d1dcecdfdac..069f00984d05fd 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -180,6 +180,30 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} +# Linux x64 Source Build + +- ${{ if containsValue(parameters.platforms, 'SourceBuild_Linux_x64') }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: Linux + archType: x64 + targetRid: linux-x64 + platform: Linux_x64 + container: + image: centos-7-source-build-20201227183738-5fe0e50 + registry: mcr + jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} + stagedBuild: ${{ parameters.stagedBuild }} + buildConfig: ${{ parameters.buildConfig }} + ${{ if eq(parameters.passPlatforms, true) }}: + platforms: ${{ parameters.platforms }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + ${{ insert }}: ${{ parameters.jobParameters }} + # WebAssembly - ${{ if containsValue(parameters.platforms, 'Browser_wasm') }}: diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 3a737e69c52131..ab00764c3e56d3 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -131,6 +131,7 @@ jobs: buildConfig: release platforms: - Linux_x64 + - Linux_x64_SourceBuild jobParameters: nameSuffix: SourceBuild buildArgs: /p:DotNetBuildFromSource=true From dbb517ce2ae760a5aff2128088c5632138888cd0 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 6 Apr 2021 14:31:05 -0700 Subject: [PATCH 2/7] Update global-build.yml --- eng/pipelines/global-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index ab00764c3e56d3..bbe62c6585f8f5 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -131,7 +131,7 @@ jobs: buildConfig: release platforms: - Linux_x64 - - Linux_x64_SourceBuild + - SourceBuild_Linux_x64 jobParameters: nameSuffix: SourceBuild buildArgs: /p:DotNetBuildFromSource=true From d0931a5c98e8aac191f0f0c9b9378ece1dd43270 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 6 Apr 2021 14:32:45 -0700 Subject: [PATCH 3/7] Update global-build.yml --- eng/pipelines/global-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index bbe62c6585f8f5..f1217173133dbd 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -130,7 +130,6 @@ jobs: jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release platforms: - - Linux_x64 - SourceBuild_Linux_x64 jobParameters: nameSuffix: SourceBuild From 9da56885af7fc4b7c730ded89816acb27dfeb504 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 8 Apr 2021 09:09:23 -0700 Subject: [PATCH 4/7] Update centos image. --- eng/pipelines/common/platform-matrix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 069f00984d05fd..9f923c51f30f32 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -193,7 +193,7 @@ jobs: targetRid: linux-x64 platform: Linux_x64 container: - image: centos-7-source-build-20201227183738-5fe0e50 + image: centos-7-source-build-20210408124356-5d87b80 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} From 8382f70ee5c274ac61b17b3aa052c23c32754807 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 8 Apr 2021 10:54:39 -0700 Subject: [PATCH 5/7] Explicitly invoke scl enable llvm-toolset-7.0 since docker doesn't do it for command executed in a running container. --- eng/pipelines/common/global-build-job.yml | 16 ++++++++++++---- eng/pipelines/global-build.yml | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 126cecfacaf05b..2b4b08a9d80784 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -19,6 +19,7 @@ parameters: shouldContinueOnError: false dependOnEvaluatePaths: false isOfficialBuild: false + buildingOnSourceBuildImage: false runtimeFlavor: 'coreclr' helixQueues: '' enablePublishTestResults: false @@ -51,7 +52,7 @@ jobs: dependsOn: ${{ parameters.dependsOn }} ${{ if eq(parameters.dependOnEvaluatePaths, true) }}: - dependsOn: + dependsOn: - evaluate_paths - ${{ if ne(parameters.dependsOn,'') }}: - ${{ parameters.dependsOn }} @@ -59,7 +60,7 @@ jobs: variables: - name: _osParameter value: -os ${{ parameters.osGroup }} - + - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}: - name: _osParameter value: /p:RuntimeOS=linux-musl /p:OutputRid=linux-musl-${{ parameters.archType }} @@ -79,13 +80,20 @@ jobs: value: /p:OfficialBuildId=$(Build.BuildNumber) ${{ if ne(parameters.isOfficialBuild, true) }}: value: '' - + - name: _richCodeNavigationParam ${{ if eq(parameters.enableRichCodeNavigation, true) }}: value: /p:EnableRichCodeNavigation=true ${{ if ne(parameters.enableRichCodeNavigation, true) }}: value: '' + - name: _sclEnableCommand + ${{ if eq(parameters.buildingOnSourceBuildImage, true) }}: + value: scl enable llvm-toolset-7.0 -- + ${{ if ne(parameters.buildingOnSourceBuildImage, true) }}: + value: '' + + - ${{ each variable in parameters.variables }}: - ${{ variable }} @@ -124,7 +132,7 @@ jobs: displayName: Install native dependencies # Build - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_crossBuildPropertyArg) $(_cxx11Parameter) $(_richCodeNavigationParam) + - script: $(_sclEnableCommand) $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_crossBuildPropertyArg) $(_cxx11Parameter) $(_richCodeNavigationParam) displayName: Build product ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: continueOnError: ${{ parameters.shouldContinueOnError }} diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index f1217173133dbd..755a91baff0d68 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -134,4 +134,5 @@ jobs: jobParameters: nameSuffix: SourceBuild buildArgs: /p:DotNetBuildFromSource=true + buildingOnSourceBuildImage: true timeoutInMinutes: 90 From 8105792408f7a130927e9688f28141be87194200 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 8 Apr 2021 14:09:05 -0700 Subject: [PATCH 6/7] Skip mono in the source-build build. --- eng/pipelines/global-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 755a91baff0d68..eca65de52097e4 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -133,6 +133,6 @@ jobs: - SourceBuild_Linux_x64 jobParameters: nameSuffix: SourceBuild - buildArgs: /p:DotNetBuildFromSource=true + buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true buildingOnSourceBuildImage: true timeoutInMinutes: 90 From 0647837c8669bb620a3fc5f1bb512351881903a2 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Fri, 9 Apr 2021 16:46:22 -0700 Subject: [PATCH 7/7] Set param in platform-matrix.yml --- eng/pipelines/common/platform-matrix.yml | 1 + eng/pipelines/global-build.yml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 9f923c51f30f32..ea17c5643461f3 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -203,6 +203,7 @@ jobs: platforms: ${{ parameters.platforms }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} + buildingOnSourceBuildImage: true # WebAssembly diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index eca65de52097e4..b415c5e5cac57b 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -134,5 +134,4 @@ jobs: jobParameters: nameSuffix: SourceBuild buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true - buildingOnSourceBuildImage: true timeoutInMinutes: 90