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/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 000d1dcecdfdac..ea17c5643461f3 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -180,6 +180,31 @@ 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-20210408124356-5d87b80 + 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 }} + buildingOnSourceBuildImage: true + # WebAssembly - ${{ if containsValue(parameters.platforms, 'Browser_wasm') }}: diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 3a737e69c52131..b415c5e5cac57b 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -130,8 +130,8 @@ jobs: jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release platforms: - - Linux_x64 + - SourceBuild_Linux_x64 jobParameters: nameSuffix: SourceBuild - buildArgs: /p:DotNetBuildFromSource=true + buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true timeoutInMinutes: 90