From a962c75f8e2bd56653fa547d471652333b1b877d Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 10:42:46 -0800 Subject: [PATCH 01/13] Local live builds not picking up runtime config The local live builds were not properly picking up the runtime configuration varaible. This meant that libraries always attempted to build against a Debug CoreCLR even if the developer specified `-runtimeConfiguration Release` --- eng/liveBuilds.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index a63c17866df12d..ecfad7e75a69e4 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -2,7 +2,7 @@ $(OSGroup) - $(Configuration) + $(RuntimeConfiguration) $(OSGroup) $(Configuration) $(OSGroup) From 976b7ea5dfda2b83de80c504682d012e4dda43fe Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 12:18:15 -0800 Subject: [PATCH 02/13] PR Feedback: - Ensure that `$(RuntimeConfiguration)` is always set - Remove duplicated logic in Subsets.props --- Directory.Build.props | 18 ++++++++++-------- eng/Subsets.props | 8 -------- eng/liveBuilds.targets | 2 +- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index cbf29a7eaecf25..22639120027601 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -34,6 +34,16 @@ net472 + + + $(Configuration) + Debug + $(RuntimeConfiguration) + $(RuntimeConfiguration) + + Debug + + - - $(RuntimeConfiguration) - $(RuntimeConfiguration) - - Debug - - - - $(RuntimeConfiguration) - $(RuntimeConfiguration) - - Debug - - Configuration=$(CoreCLRConfiguration) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index ecfad7e75a69e4..555ee69ef8878c 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -4,7 +4,7 @@ $(OSGroup) $(RuntimeConfiguration) $(OSGroup) - $(Configuration) + $(RuntimeConfiguration) $(OSGroup) $(Configuration) From 95495dc04052bc85d515e6b5bfc8ad9745ceb7d7 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 12:29:41 -0800 Subject: [PATCH 03/13] Remove unnecessary properties --- eng/liveBuilds.targets | 2 -- 1 file changed, 2 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 555ee69ef8878c..4de97ca6e678b6 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -2,9 +2,7 @@ $(OSGroup) - $(RuntimeConfiguration) $(OSGroup) - $(RuntimeConfiguration) $(OSGroup) $(Configuration) From 5740d5587aec1606a90019165e75aaf670a33a9d Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 15:24:33 -0800 Subject: [PATCH 04/13] Progress --- Directory.Build.props | 3 +-- src/libraries/Directory.Build.targets | 3 --- src/libraries/shims/manual/Directory.Build.props | 2 -- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 22639120027601..57d4dea6232421 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -36,8 +36,7 @@ - $(Configuration) - Debug + $(ConfigurationGroup) $(RuntimeConfiguration) $(RuntimeConfiguration) diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index e883f37d60c239..c925f4382c692f 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -1,9 +1,6 @@ $(_bc_OSGroup) - $(_bc_ConfigurationGroup) - $(_bc_OSGroup) - $(_bc_ConfigurationGroup) diff --git a/src/libraries/shims/manual/Directory.Build.props b/src/libraries/shims/manual/Directory.Build.props index 0c099b282eeddc..a10c98bb4d94dc 100644 --- a/src/libraries/shims/manual/Directory.Build.props +++ b/src/libraries/shims/manual/Directory.Build.props @@ -14,9 +14,7 @@ $(ArtifactsBinDir)runtime/$(TargetFramework)-$(_bc_OSGroup)-$(_bc_ConfigurationGroup)-$(ArchGroup)/ $(_bc_OSGroup) - $(_bc_ConfigurationGroup) $(_bc_OSGroup) - $(_bc_ConfigurationGroup) From e641b287c147d1afe574e924a66ec00d7076d44b Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 15:42:49 -0800 Subject: [PATCH 05/13] Mix configurations Change the live / live jobs so they mix release and debug configurations. This will help ensure we avoid future breaks in this area --- eng/pipelines/common/global-build-job.yml | 7 ++++--- eng/pipelines/global-build.yml | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 82dc4d0c6e6d67..e2af08bf30f403 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -1,5 +1,6 @@ parameters: buildConfig: '' + runtimeConfig: '' archType: '' osGroup: '' osSubgroup: '' @@ -11,8 +12,8 @@ parameters: jobs: - template: /eng/common/templates/job/job.yml parameters: - name: ${{ format('runtime_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - displayName: ${{ format('Runtime Build {0}{1} {2} {3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + name: ${{ format('build_{0}{1}_{2}_{3}_runtime{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.runtimeConfig) }} + displayName: ${{ format('Build {0}{1} {2} {3} Runtime {4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.runtimeConfig) }} dependsOn: checkout pool: ${{ parameters.pool }} container: ${{ parameters.container }} @@ -35,5 +36,5 @@ jobs: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml # Build - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -arch ${{ parameters.archType }} + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} displayName: Build product diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 57d5e3cadd2ef5..c066480ab8732b 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -46,6 +46,7 @@ jobs: - OSX_x64 jobParameters: testGroup: innerloop + runtimeConfig: debug # # Build the combined runtime repo @@ -58,3 +59,4 @@ jobs: - Linux_x64 jobParameters: testGroup: innerloop + runtimeConfig: release From 9977e65a3a6f6e4d3e54444fce1a243bab17f039 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 20:50:47 -0800 Subject: [PATCH 06/13] Undo MonoOsGorup delete --- src/libraries/Directory.Build.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index c925f4382c692f..45b0883faa4bef 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -1,6 +1,7 @@ $(_bc_OSGroup) + $(_bc_OSGroup) From 46d25fe70093018cc3bd18158b1040bf92eb1416 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 23 Jan 2020 21:08:47 -0800 Subject: [PATCH 07/13] Correct the import order --- Directory.Build.props | 9 +-------- eng/Build.props | 1 + eng/Configurations.props | 10 ++++++++++ 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 eng/Configurations.props diff --git a/Directory.Build.props b/Directory.Build.props index 57d4dea6232421..446bb1ede6827f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -34,14 +34,7 @@ net472 - - - $(ConfigurationGroup) - $(RuntimeConfiguration) - $(RuntimeConfiguration) - - Debug - + + + + + $(ConfigurationGroup) + $(RuntimeConfiguration) + $(RuntimeConfiguration) + + Debug + + \ No newline at end of file From 9dbbce8bb71a4947b7b6638aa80b8df032658b11 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Fri, 24 Jan 2020 22:31:49 -0800 Subject: [PATCH 08/13] Publish binary logs --- eng/pipelines/common/global-build-job.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index e2af08bf30f403..aac43d87c31ae7 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -36,5 +36,14 @@ jobs: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml # Build - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} -bl displayName: Build product + + - task: PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/' + PublishLocation: Container + ArtifactName: $(Agent.Os)_PublishBuildAssets + continueOnError: true + condition: always() From 3e634ebb8910419c49d5b7170148c1edcbf8f327 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Sat, 25 Jan 2020 12:09:57 -0800 Subject: [PATCH 09/13] Pass -ci as this is a CI build --- eng/pipelines/common/global-build-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index aac43d87c31ae7..9a827dbaed840d 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -36,7 +36,7 @@ jobs: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml # Build - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} -bl + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} -bl -ci displayName: Build product - task: PublishBuildArtifacts@1 From f0dbb6f29e0d396992551174aadcfaf0d7f810c1 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Mon, 27 Jan 2020 11:18:29 -0800 Subject: [PATCH 10/13] Progress --- eng/pipelines/common/global-build-job.yml | 2 +- src/coreclr/build.cmd | 3 ++- src/coreclr/build.sh | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 9a827dbaed840d..a4b637d32128bb 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -36,7 +36,7 @@ jobs: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml # Build - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} -bl -ci + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} -runtimeConfiguration ${{ parameters.runtimeConfig }} -arch ${{ parameters.archType }} -ci displayName: Build product - task: PublishBuildArtifacts@1 diff --git a/src/coreclr/build.cmd b/src/coreclr/build.cmd index a668f9fe15485e..65cdaac224cba3 100644 --- a/src/coreclr/build.cmd +++ b/src/coreclr/build.cmd @@ -386,7 +386,8 @@ if %__RestoreOptData% EQU 1 ( echo %__MsgPrefix%Restoring the OptimizationData Package powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__RepoRootDir%\eng\common\msbuild.ps1" /clp:nosummary %__ArcadeScriptArgs%^ %OptDataProjectFilePath% /t:Restore^ - %__CommonMSBuildArgs% %__UnprocessedBuildArgs% + %__CommonMSBuildArgs% %__UnprocessedBuildArgs%^ + /nodereuse:false if not !errorlevel! == 0 ( echo %__ErrMsgPrefix%%__MsgPrefix%Error: Failed to restore the optimization data package. set __exitCode=!errorlevel! diff --git a/src/coreclr/build.sh b/src/coreclr/build.sh index 6c54d81b115e3c..12ac5ee749acb8 100755 --- a/src/coreclr/build.sh +++ b/src/coreclr/build.sh @@ -53,7 +53,8 @@ restore_optdata() echo "Restoring the OptimizationData package" "$__RepoRootDir/eng/common/msbuild.sh" /clp:nosummary $__ArcadeScriptArgs \ $OptDataProjectFilePath /t:Restore /m \ - $__CommonMSBuildArgs $__UnprocessedBuildArgs + $__CommonMSBuildArgs $__UnprocessedBuildArgs \ + /nodereuse:false local exit_code="$?" if [[ "$exit_code" != 0 ]]; then echo "${__ErrMsgPrefix}Failed to restore the optimization data package." From 84727f5c6623516c04bf4140a35c408e37c5d0db Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Mon, 27 Jan 2020 16:15:59 -0800 Subject: [PATCH 11/13] Test --- eng/Configurations.props | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/Configurations.props b/eng/Configurations.props index 50d93394b7358b..e43c30b7d199c5 100644 --- a/eng/Configurations.props +++ b/eng/Configurations.props @@ -2,6 +2,7 @@ $(ConfigurationGroup) + $(Configuration) $(RuntimeConfiguration) $(RuntimeConfiguration) From 47f84a022e39918a32efc304211ba38304d9d7a1 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 28 Jan 2020 18:07:34 +0100 Subject: [PATCH 12/13] Set ArtifactsObjDir early enough for Mono Mono currently relies on ArtifactsObjDir when setting BaseIntermediateOutputPath. Not setting it leads to restore issues. --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 446bb1ede6827f..0b999b18d37dbe 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -24,6 +24,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj')) From 0164e80e0f7df6e42d2e982b36c5059bd51e69bb Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Thu, 30 Jan 2020 12:57:40 -0800 Subject: [PATCH 13/13] Don't overwrite the properties --- eng/Subsets.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index 2e369c80847e01..a7a3072d7234fa 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -104,19 +104,19 @@ - Configuration=$(CoreCLRConfiguration) + Configuration=$(CoreCLRConfiguration) - Configuration=$(MonoConfiguration) + Configuration=$(MonoConfiguration) - Configuration=$(LibrariesConfiguration) + Configuration=$(LibrariesConfiguration)