From dda0e24526bb1542cfd59678278f7e4926fec9b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 20 Jan 2020 11:31:43 +0100 Subject: [PATCH 01/50] Enable Mono in default build --- eng/Subsets.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index e2a2cad52991c6..7194f1ed0d151e 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -57,7 +57,7 @@ - libraries-installer-coreclr + libraries-installer-coreclr-mono corehost-managed-depproj-pkgproj-bundle-installers-test all From 9dd624aaabea64976e4f7f12ab8a4430ccd1641d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 20 Jan 2020 12:16:50 +0100 Subject: [PATCH 02/50] Install Mono build dependencies --- eng/install-native-dependencies.sh | 4 ++-- eng/pipelines/common/global-build-job.yml | 2 +- eng/pipelines/libraries/build-job.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/install-native-dependencies.sh b/eng/install-native-dependencies.sh index aca0e6155f8164..71848222774caf 100644 --- a/eng/install-native-dependencies.sh +++ b/eng/install-native-dependencies.sh @@ -5,7 +5,7 @@ if [ "$1" = "Linux" ]; then if [ "$?" != "0" ]; then exit 1; fi - sudo apt install cmake llvm-3.9 clang-3.9 lldb-3.9 liblldb-3.9-dev libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev libkrb5-dev libnuma-dev + sudo apt install cmake llvm-3.9 clang-3.9 lldb-3.9 liblldb-3.9-dev libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev libkrb5-dev libnuma-dev autoconf automake libtool build-essential if [ "$?" != "0" ]; then exit 1; fi @@ -14,7 +14,7 @@ elif [ "$1" = "OSX" ]; then if [ "$?" != "0" ]; then exit 1; fi - brew install icu4c openssl + brew install icu4c openssl autoconf automake libtool pkg-config python3 if [ "$?" != "0" ]; then exit 1; fi diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 9f1987d1c3d00f..82dc4d0c6e6d67 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -25,7 +25,7 @@ jobs: - ${{ if eq(parameters.osGroup, 'OSX') }}: - script: | $(setScriptToEchoAndFailOnNonZero) - brew install pkgconfig icu4c openssl + brew install pkgconfig icu4c openssl autoconf automake libtool pkg-config python3 brew link --force icu4c ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/ ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/ diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index 01a4594ef804ad..f0048f670d5cb6 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -80,7 +80,7 @@ jobs: - ${{ if eq(parameters.osGroup, 'OSX') }}: - script: | - brew install pkgconfig icu4c openssl + brew install pkgconfig icu4c openssl autoconf automake libtool pkg-config python3 brew link --force icu4c ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/ ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/ From b38c606238d5f819958cf40cc5c8260f35b0afb5 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 20 Jan 2020 14:14:26 +0100 Subject: [PATCH 03/50] Integrate Mono into the build system --- Directory.Build.props | 6 + docs/workflow/building/libraries/README.md | 8 +- docs/workflow/testing/coreclr/testing.md | 2 +- eng/Subsets.props | 12 ++ eng/build.ps1 | 23 ++-- eng/build.sh | 5 +- eng/docker/build-docker-sdk.ps1 | 2 +- eng/docker/libraries-sdk.linux.Dockerfile | 2 +- .../build-coreclr-and-libraries-job.yml | 2 +- eng/pipelines/coreclr/ci.yml | 2 +- eng/pipelines/coreclr/templates/xplat-job.yml | 8 +- eng/pipelines/installer/jobs/base-job.yml | 61 +++++---- eng/pipelines/libraries/base-job.yml | 37 +++--- eng/pipelines/libraries/build-job.yml | 17 +-- eng/pipelines/libraries/build-test-job.yml | 4 +- eng/pipelines/libraries/outerloop.yml | 4 +- eng/pipelines/libraries/run-test-job.yml | 35 ++++-- eng/pipelines/mono/templates/build-job.yml | 116 ++++++++++++++++++ eng/pipelines/runtime-official.yml | 6 +- eng/pipelines/runtime.yml | 91 ++++++++++++-- 20 files changed, 334 insertions(+), 109 deletions(-) create mode 100644 eng/pipelines/mono/templates/build-job.yml diff --git a/Directory.Build.props b/Directory.Build.props index c3809e2ce32997..390dd8455a6ed4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -52,6 +52,12 @@ $([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src')) + + + $(RuntimeConfiguration) + $(RuntimeConfiguration) + + + + $(RuntimeConfiguration) + $(RuntimeConfiguration) + + Configuration=$(CoreCLRConfiguration) + + + Configuration=$(MonoConfiguration) + + + Configuration=$(LibrariesConfiguration) diff --git a/eng/build.ps1 b/eng/build.ps1 index 32c300c6cb44d8..3c3f6e747302a1 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -14,7 +14,7 @@ Param( [string]$arch, [string]$subsetCategory, [string]$subset, - [string]$coreClrConfiguration, + [string]$runtimeConfiguration, [string]$librariesConfiguration, [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties ) @@ -132,17 +132,18 @@ foreach ($argument in $PSBoundParameters.Keys) { switch($argument) { - "build" { $arguments += " -build" } - "buildtests" { if ($build -eq $true) { $arguments += " /p:BuildTests=true" } else { $arguments += " -build /p:BuildTests=only" } } - "test" { $arguments += " -test" } - "configuration" { $configuration = (Get-Culture).TextInfo.ToTitleCase($($PSBoundParameters[$argument])); $arguments += " /p:ConfigurationGroup=$configuration -configuration $configuration" } + "build" { $arguments += " -build" } + "buildtests" { if ($build -eq $true) { $arguments += " /p:BuildTests=true" } else { $arguments += " -build /p:BuildTests=only" } } + "test" { $arguments += " -test" } + "configuration" { $configuration = (Get-Culture).TextInfo.ToTitleCase($($PSBoundParameters[$argument])); $arguments += " /p:ConfigurationGroup=$configuration -configuration $configuration" } + "runtimeConfiguration" { $arguments += " /p:RuntimeConfiguration=$((Get-Culture).TextInfo.ToTitleCase($($PSBoundParameters[$argument])))" } # This should be removed after we have finalized our ci build pipeline. - "framework" { if ($PSBoundParameters[$argument].ToLowerInvariant() -eq 'netcoreapp') { $arguments += " /p:TargetGroup=netcoreapp5.0" } else { if ($PSBoundParameters[$argument].ToLowerInvariant() -eq 'netfx') { $arguments += " /p:TargetGroup=net472" } else { $arguments += " /p:TargetGroup=$($PSBoundParameters[$argument].ToLowerInvariant())"}}} - "os" { $arguments += " /p:OSGroup=$($PSBoundParameters[$argument])" } - "allconfigurations" { $arguments += " /p:BuildAllConfigurations=true" } - "arch" { $arguments += " /p:ArchGroup=$($PSBoundParameters[$argument]) /p:TargetArchitecture=$($PSBoundParameters[$argument])" } - "properties" { $arguments += " " + $properties } - default { $arguments += " /p:$argument=$($PSBoundParameters[$argument])" } + "framework" { if ($PSBoundParameters[$argument].ToLowerInvariant() -eq 'netcoreapp') { $arguments += " /p:TargetGroup=netcoreapp5.0" } else { if ($PSBoundParameters[$argument].ToLowerInvariant() -eq 'netfx') { $arguments += " /p:TargetGroup=net472" } else { $arguments += " /p:TargetGroup=$($PSBoundParameters[$argument].ToLowerInvariant())"}}} + "os" { $arguments += " /p:OSGroup=$($PSBoundParameters[$argument])" } + "allconfigurations" { $arguments += " /p:BuildAllConfigurations=true" } + "arch" { $arguments += " /p:ArchGroup=$($PSBoundParameters[$argument]) /p:TargetArchitecture=$($PSBoundParameters[$argument])" } + "properties" { $arguments += " " + $properties } + default { $arguments += " /p:$argument=$($PSBoundParameters[$argument])" } } } diff --git a/eng/build.sh b/eng/build.sh index 5ef5560b70a0cb..337c2ef460faee 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -125,8 +125,9 @@ while [[ $# > 0 ]]; do arguments="$arguments /p:BuildNativeStripSymbols=true" shift 1 ;; - -coreclrconfiguration) - arguments="$arguments /p:CoreCLRConfiguration=$2" + -runtimeconfiguration) + val="$(tr '[:lower:]' '[:upper:]' <<< ${2:0:1})${2:1}" + arguments="$arguments /p:RuntimeConfiguration=$val" shift 2 ;; -librariesconfiguration) diff --git a/eng/docker/build-docker-sdk.ps1 b/eng/docker/build-docker-sdk.ps1 index 546545d637976f..76c1ce7b414070 100755 --- a/eng/docker/build-docker-sdk.ps1 +++ b/eng/docker/build-docker-sdk.ps1 @@ -19,7 +19,7 @@ if ($buildWindowsContainers) # Build on the host machine, then simply copy artifacts to the target docker image. # This should result in significantly lower build times, for now. & "$REPO_ROOT_DIR/coreclr.cmd" -c Release - & "$REPO_ROOT_DIR/libraries.cmd" -ci -c $configuration /p:CoreCLRConfiguration=Release + & "$REPO_ROOT_DIR/libraries.cmd" -ci -c $configuration -runtimeConfiguration release # Dockerize the build artifacts docker build --tag $imageName ` diff --git a/eng/docker/libraries-sdk.linux.Dockerfile b/eng/docker/libraries-sdk.linux.Dockerfile index 6ac7c85359a213..efba4fb7c309d4 100644 --- a/eng/docker/libraries-sdk.linux.Dockerfile +++ b/eng/docker/libraries-sdk.linux.Dockerfile @@ -9,7 +9,7 @@ COPY . . ARG CONFIGURATION=Release RUN ./src/coreclr/build.sh -release -skiptests -clang9 && \ - ./libraries.sh -c $CONFIGURATION /p:CoreCLRConfiguration=Release + ./libraries.sh -c $CONFIGURATION -runtimeconfiguration release FROM $SDK_BASE_IMAGE as target diff --git a/eng/pipelines/common/build-coreclr-and-libraries-job.yml b/eng/pipelines/common/build-coreclr-and-libraries-job.yml index 8eb2cdd129d406..03b1997e7a46c2 100644 --- a/eng/pipelines/common/build-coreclr-and-libraries-job.yml +++ b/eng/pipelines/common/build-coreclr-and-libraries-job.yml @@ -48,4 +48,4 @@ jobs: stagedBuild: ${{ parameters.stagedBuild }} variables: ${{ parameters.variables }} pool: ${{ parameters.pool }} - liveCoreClrBuildConfig: ${{ parameters.buildConfig }} + liveRuntimeBuildConfig: ${{ parameters.buildConfig }} diff --git a/eng/pipelines/coreclr/ci.yml b/eng/pipelines/coreclr/ci.yml index 32d80470a2b640..b74dc36e1bdc29 100644 --- a/eng/pipelines/coreclr/ci.yml +++ b/eng/pipelines/coreclr/ci.yml @@ -86,7 +86,7 @@ jobs: platformGroup: all jobParameters: isOfficialBuild: false - liveCoreClrBuildConfig: checked + liveRuntimeBuildConfig: checked # # Checked test builds diff --git a/eng/pipelines/coreclr/templates/xplat-job.yml b/eng/pipelines/coreclr/templates/xplat-job.yml index 1d4adc02ae4807..ffa0cf3772419f 100644 --- a/eng/pipelines/coreclr/templates/xplat-job.yml +++ b/eng/pipelines/coreclr/templates/xplat-job.yml @@ -41,7 +41,7 @@ jobs: # Send telemetry for all builds enableTelemetry: true - helixRepo: 'dotnet/coreclr' + helixRepo: 'dotnet/runtime' helixType: ${{ parameters.helixType }} enableMicrobuild: ${{ parameters.enableMicrobuild }} @@ -98,13 +98,13 @@ jobs: - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource - value: official/dotnet/coreclr/$(Build.SourceBranch) + value: official/dotnet/runtime/$(Build.SourceBranch) - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource - value: pr/dotnet/coreclr/$(Build.SourceBranch) + value: pr/dotnet/runtime/$(Build.SourceBranch) - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource - value: ci/dotnet/coreclr/$(Build.SourceBranch) + value: ci/dotnet/runtime/$(Build.SourceBranch) - ${{ if ne(parameters.crossrootfsDir, '') }}: - name: crossArg diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index bdd5680c1989eb..8ac7991b59bc84 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -32,8 +32,9 @@ parameters: useOfficialAllConfigurations: false buildFullPlatformManifest: false - liveCoreClrBuildConfig: '' + liveRuntimeBuildConfig: '' liveLibrariesBuildConfig: '' + runtimeFlavor: 'coreclr' platforms: [] jobs: @@ -232,12 +233,12 @@ jobs: - name: LiveOverridePathArgs value: >- - $(CoreCLRArtifactsArgs) + $(RuntimeArtifactsArgs) $(LibrariesConfigurationArg) $(LibrariesAllConfigurationsOverridePathArg) $(AllArtifactsArgs) - - name: CoreCLRArtifactsArgs + - name: RuntimeArtifactsArgs value: '' - name: LibrariesConfigurationArg value: '' @@ -246,7 +247,7 @@ jobs: - name: AllArtifactsArgs value: '' - - name: CoreClrDownloadPath + - name: RuntimeDownloadPath value: '' - name: LibrariesDownloadPath value: '' @@ -255,21 +256,27 @@ jobs: - name: AllArtifactsDownloadPath value: '' - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - - name: liveCoreClrLegName + - name: runtimeFlavorName + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + value: Mono + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + value: CoreCLR + + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - name: liveRuntimeLegName value: ${{ format('{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, - parameters.liveCoreClrBuildConfig) }} - - name: CoreClrDownloadPath - value: 'artifacts/transport/coreclr' - - name: CoreCLRArtifactsArgs + parameters.liveRuntimeBuildConfig) }} + - name: RuntimeDownloadPath + value: 'artifacts/transport/${{ parameters.runtimeFlavor }}' + - name: RuntimeArtifactsArgs value: >- - /p:CoreCLROverridePath=${{ parameters.buildCommandSourcesDirectory }}$(CoreClrDownloadPath) - /p:CoreCLRConfiguration=${{ parameters.liveCoreClrBuildConfig }} - - name: CoreClrArtifactName - value: CoreCLRProduct_$(liveCoreClrLegName) + /p:RuntimeOverridePath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) + /p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }} + - name: RuntimeArtifactName + value: $(runtimeFlavorName)Product_$(liveRuntimeLegName) - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - name: liveLibrariesLegName @@ -307,12 +314,12 @@ jobs: dependsOn: - checkout - ${{ parameters.dependsOn }} - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - - coreclr_product_build_${{ format('{0}{1}_{2}_{3}', + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - ${{ parameters.runtimeFlavor }}_product_build_${{ format('{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, - parameters.liveCoreClrBuildConfig) }} + parameters.liveRuntimeBuildConfig) }} - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - libraries_build_netcoreapp_${{ format('{0}{1}_{2}_{3}', parameters.osGroup, @@ -323,7 +330,7 @@ jobs: - libraries_build_allconfigurations_Windows_NT_x64_Release - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - ${{ each platform in parameters.platforms }}: - - coreclr_product_build_${{ platform }}_${{ parameters.liveCoreClrBuildConfig }} + - ${{ parameters.runtimeFlavor }}_product_build_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }} - libraries_build_netcoreapp_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }} steps: @@ -371,17 +378,17 @@ jobs: downloadType: specific downloadPath: '$(Build.SourcesDirectory)/__download__/AllPlatforms/' itemPattern: | - CoreCLRProduct_*/** + $(runtimeFlavorName)Product_*/** libraries_bin_*/** - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - ${{ each platform in parameters.platforms }}: - task: ExtractFiles@1 - displayName: 'Unzip CoreCLR artifacts: ${{ platform }}' + displayName: 'Unzip $(runtimeFlavorName) artifacts: ${{ platform }}' inputs: archiveFilePatterns: | - $(Build.SourcesDirectory)/__download__/AllPlatforms/CoreCLRProduct_${{ platform }}_${{ parameters.liveCoreClrBuildConfig }}.* - destinationFolder: $(AllArtifactsDownloadPath)/CoreCLRProduct_${{ platform }}_${{ parameters.liveCoreClrBuildConfig }}/ + $(Build.SourcesDirectory)/__download__/AllPlatforms/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* + destinationFolder: $(AllArtifactsDownloadPath)/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ cleanUnpackFolder: false - task: ExtractFiles@1 displayName: 'Unzip Libraries artifacts: ${{ platform }}' @@ -391,13 +398,13 @@ jobs: destinationFolder: $(AllArtifactsDownloadPath)/libraries_bin_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }}/ cleanUnpackFolder: false - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: - unpackFolder: $(Build.SourcesDirectory)/$(CoreClrDownloadPath) - artifactFileName: '$(CoreClrArtifactName)$(archiveExtension)' - artifactName: '$(CoreClrArtifactName)' - displayName: 'CoreCLR artifacts' + unpackFolder: $(Build.SourcesDirectory)/$(RuntimeDownloadPath) + artifactFileName: '$(RuntimeArtifactsName)$(archiveExtension)' + artifactName: '$(RuntimeArtifactName)' + displayName: '$(runtimeFlavorName) artifacts' - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index 45380e41c308e7..e29be74b7a717e 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -6,7 +6,8 @@ parameters: framework: '' isOfficialBuild: false isOfficialAllConfigurations: false - liveCoreClrBuildConfig: '' + liveRuntimeBuildConfig: '' + runtimeFlavor: 'coreclr' timeoutInMinutes: 150 condition: true container: '' @@ -71,18 +72,24 @@ jobs: - ${{ if eq(parameters.isOfficialBuild, 'true') }}: - _msbuildCommonParameters: /p:OfficialBuildId=$(Build.BuildNumber) - - _coreClrArtifactName: '' - - _coreClrDownloadPath: '' - - _coreClrArtifactsPathArg: '' + - _runtimeArtifactName: '' + - _runtimeDownloadPath: '' + - _runtimeArtifactsPathArg: '' + - _runtimeFlavorName: '' - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - - _coreClrDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/coreclr' - - _coreClrArtifactName: 'CoreCLRProduct_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveCoreClrBuildConfig }}' - - _coreClrArtifactsPathArg: ' /p:CoreCLRArtifactsPath=$(_coreClrDownloadPath)' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - _runtimeFlavorName: 'Mono' + - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + - _runtimeFlavorName: 'CoreCLR' + + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - _runtimeDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/${{ parameters.runtimeFlavor }}' + - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)' # WebAssembly uses linux implementation detail - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - _coreClrArtifactName: 'CoreCLRProduct_Linux_x64_${{ parameters.liveCoreClrBuildConfig }}' + - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' # Windows variables - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: @@ -94,7 +101,7 @@ jobs: - ${{ if eq(parameters.isOfficialBuild, 'true') }}: - _stripSymbolsArg: -stripSymbols - - _buildArguments: -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_stripSymbolsArg) $(_testScopeArg) $(_warnAsErrorArg) $(_runtimeOSArg) $(_msbuildCommonParameters) $(_coreClrArtifactsPathArg) + - _buildArguments: -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_stripSymbolsArg) $(_testScopeArg) $(_warnAsErrorArg) $(_runtimeOSArg) $(_msbuildCommonParameters) $(_runtimeArtifactsPathArg) - ${{ parameters.variables }} dependsOn: @@ -109,12 +116,12 @@ jobs: steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: - unpackFolder: $(_coreClrDownloadPath) - artifactFileName: '$(_coreClrArtifactName)$(archiveExtension)' - artifactName: '$(_coreClrArtifactName)' - displayName: 'CoreCLR build drop' + unpackFolder: $(_runtimeDownloadPath) + artifactFileName: '$(_runtimeArtifactName)$(archiveExtension)' + artifactName: '$(_runtimeArtifactName)' + displayName: '${{ parameters.runtimeFlavorName }} build drop' - ${{ parameters.steps }} diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index f0048f670d5cb6..11bb1e1466d899 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -7,12 +7,13 @@ parameters: isOfficialBuild: false isOfficialAllConfigurations: false - # When set to a non-empty value (Debug / Release), it determines CoreCLR + # When set to a non-empty value (Debug / Release), it determines the runtime's # build configuration to use for building libraries and tests. Setting this - # property implies a dependency of this job on the appropriate CoreCLR build + # property implies a dependency of this job on the appropriate runtime build # and is used to construct the name of the Azure artifact representing - # CoreCLR build to use for building the libraries and library tests. - liveCoreClrBuildConfig: '' + # runtime build to use for building the libraries and library tests. + liveRuntimeBuildConfig: '' + runtimeFlavor: 'coreclr' timeoutInMinutes: 150 preBuildSteps: [] @@ -33,7 +34,7 @@ jobs: framework: ${{ parameters.framework }} isOfficialBuild: ${{ parameters.isOfficialBuild }} isOfficialAllConfigurations: ${{ parameters.isOfficialAllConfigurations }} - liveCoreClrBuildConfig: ${{ parameters.liveCoreClrBuildConfig }} + liveRuntimeBuildConfig: ${{ parameters.liveRuntimeBuildConfig }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }} preBuildSteps: ${{ parameters.preBuildSteps }} container: ${{ parameters.container }} @@ -43,12 +44,12 @@ jobs: name: build displayName: 'Build' - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: dependsOn: - ${{ if ne(parameters.osGroup, 'WebAssembly') }}: - - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveCoreClrBuildConfig) }} + - ${{ format('${{ parameters.runtimeFlavor }}_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', 'linux', parameters.osSubgroup, 'x64', parameters.liveCoreClrBuildConfig) }} + - ${{ format('${{ parameters.runtimeFlavor }}_product_build_{0}{1}_{2}_{3}', 'linux', parameters.osSubgroup, 'x64', parameters.liveRuntimeBuildConfig) }} variables: - _skipTestRestoreArg: /p:SkipTestRestore=true diff --git a/eng/pipelines/libraries/build-test-job.yml b/eng/pipelines/libraries/build-test-job.yml index 813db155d78cc2..b122fa367a6bdb 100644 --- a/eng/pipelines/libraries/build-test-job.yml +++ b/eng/pipelines/libraries/build-test-job.yml @@ -5,7 +5,7 @@ parameters: archType: '' framework: netcoreapp isOfficialBuild: false - liveCoreClrBuildConfig: '' + liveRuntimeBuildConfig: '' timeoutInMinutes: 150 container: '' publishTestArtifacs: true @@ -25,7 +25,7 @@ jobs: framework: ${{ parameters.framework }} isOfficialBuild: ${{ parameters.isOfficialBuild }} condition: ${{ parameters.condition }} - liveCoreClrBuildConfig: ${{ parameters.liveCoreClrBuildConfig }} + liveRuntimeBuildConfig: ${{ parameters.liveRuntimeBuildConfig }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }} container: ${{ parameters.container }} pool: ${{ parameters.pool }} diff --git a/eng/pipelines/libraries/outerloop.yml b/eng/pipelines/libraries/outerloop.yml index ded82467e65cfb..5edc57a6801d0f 100644 --- a/eng/pipelines/libraries/outerloop.yml +++ b/eng/pipelines/libraries/outerloop.yml @@ -64,7 +64,7 @@ jobs: framework: netcoreapp runTests: true testScope: outerloop - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release - ${{ if eq(variables['isFullMatrix'], false) }}: - template: /eng/pipelines/common/platform-matrix.yml @@ -86,7 +86,7 @@ jobs: framework: netcoreapp runTests: true testScope: outerloop - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release - ${{ if eq(variables['includeWindowsOuterloop'], true) }}: - template: /eng/pipelines/common/platform-matrix.yml diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index fc05a8879ecdf0..50c623df4f4a88 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -5,7 +5,8 @@ parameters: archType: '' framework: netcoreapp isOfficialBuild: false - liveCoreClrBuildConfig: '' + liveRuntimeBuildConfig: '' + runtimeFlavor: 'coreclr' timeoutInMinutes: 150 pool: '' testScope: '' @@ -15,6 +16,13 @@ parameters: condition: true variables: {} +variables: + - _runtimeFlavorName: '' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - _runtimeFlavorName: 'Mono' + - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + - _runtimeFlavorName: 'CoreCLR' + jobs: - template: /eng/pipelines/libraries/base-job.yml parameters: @@ -24,31 +32,32 @@ jobs: archType: ${{ parameters.archType }} framework: ${{ parameters.framework }} isOfficialBuild: ${{ parameters.isOfficialBuild }} - liveCoreClrBuildConfig: ${{ parameters.liveCoreClrBuildConfig }} + liveRuntimeBuildConfig: ${{ parameters.liveRuntimeBuildConfig }} + runtimeFlavor: ${{ parameters.runtimeFlavor }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }} container: '' # we just send to helix, no need to use a container. condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - displayName: ${{ format('Test Run {0} CoreCLR', parameters.liveCoreClrBuildConfig) }} - name: ${{ format('test_run_{0}_coreclr', parameters.liveCoreClrBuildConfig) }} - ${{ if eq(parameters.liveCoreClrBuildConfig, '') }}: + ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, $(_runtimeFlavorName)) }} + name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} + ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' name: test_run dependsOn: - ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveCoreClrBuildConfig) }} + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} variables: - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - _archiveTestsParameter: /p:ArchiveTests=true - _skipTestRestoreArg: /p:SkipTestRestore=false - _testRunNamePrefixSuffix: '' - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: - - _testRunNamePrefixSuffix: CoreCLR_${{ parameters.liveCoreClrBuildConfig }} + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - _testRunNamePrefixSuffix: $(_runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} - ${{ parameters.variables }} steps: @@ -68,13 +77,13 @@ jobs: artifactName: $(librariesTestsArtifactName) artifactFileName: $(librariesTestsArtifactName)$(archiveExtension) - - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - script: $(_msbuildCommand) src/libraries/restore/runtime/runtime.depproj - $(_coreClrArtifactsPathArg) + $(_runtimeArtifactsPathArg) $(_runtimeOSArg) /p:ArchGroup=${{ parameters.archType }} /p:ConfigurationGroup=${{ parameters.buildConfig }} - displayName: Override CoreCLR from live drop + displayName: Override $(_runtimeFlavorName) from live drop - template: /eng/pipelines/libraries/helix.yml parameters: diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml new file mode 100644 index 00000000000000..315c4abd9d6add --- /dev/null +++ b/eng/pipelines/mono/templates/build-job.yml @@ -0,0 +1,116 @@ +parameters: + buildConfig: '' + archType: '' + osGroup: '' + osSubgroup: '' + platform: '' + container: '' + testGroup: '' + crossrootfsDir: '' + timeoutInMinutes: '' + stagedBuild: false + variables: {} + pool: '' + condition: true + +### Product build +jobs: +- template: ..\..\coreclr\templates\xplat-pipeline-job.yml + parameters: + buildConfig: ${{ parameters.buildConfig }} + _BuildConfig: ${{ parameters.buildConfig }} + archType: ${{ parameters.archType }} + osGroup: ${{ parameters.osGroup }} + osSubgroup: ${{ parameters.osSubgroup }} + testGroup: ${{ parameters.testGroup }} + helixType: 'build/product/' + enableMicrobuild: true + stagedBuild: ${{ parameters.stagedBuild }} + pool: ${{ parameters.pool }} + condition: ${{ parameters.condition }} + + # Compute job name from template parameters + name: ${{ format('mono_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + displayName: ${{ format('Mono Product Build {0}{1} {2} {3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + + # Run all steps in the container. + # Note that the containers are defined in platform-matrix.yml + container: ${{ parameters.container }} + + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + + crossrootfsDir: ${{ parameters.crossrootfsDir }} + + gatherAssetManifests: true + variables: + - name: osGroup + value: ${{ parameters.osGroup }} + - name: osSubgroup + value: ${{ parameters.osSubgroup }} + - name: stripSymbolsArg + value: '' + # Strip symbols only on the release build + - ${{ if eq(parameters.buildConfig, 'Release') }}: + - name: stripSymbolsArg + value: '-stripsymbols' + - name: clangArg + value: '' + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - name: clangArg + value: '-clang9' + # Our FreeBSD doesn't yet detect available clang versions, so pass it explicitly. + - ${{ if eq(parameters.osGroup, 'FreeBSD') }}: + - name: clangArg + value: '-clang6.0' + # Building for x64 MUSL happens on Alpine Linux and we need to use the stable version available there + - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64')) }}: + - name: clangArg + value: '' + # AppleClang has different version scheme, so we let complier introspection pick up the available clang from PATH + - ${{ if eq(parameters.osGroup, 'OSX') }}: + - name: clangArg + value: '' + + - ${{ parameters.variables }} + + steps: + + # Install native dependencies + # Linux builds use docker images with dependencies preinstalled, + # and FreeBSD builds use a build agent with dependencies + # preinstalled, so we only need this step for OSX and Windows. + - ${{ if eq(parameters.osGroup, 'OSX') }}: + - script: sh $(Build.SourcesDirectory)/eng/install-native-dependencies.sh $(osGroup) + displayName: Install native dependencies + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + # Necessary to install python + - script: $(Build.SourcesDirectory)\eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force + displayName: Install native dependencies + + # Build + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - script: mono$(scriptExt) $(buildConfig) $(archType) $(crossArg) -ci -skipnuget $(clangArg) $(stripSymbolsArg) + displayName: Build product + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - script: mono$(scriptExt) $(buildConfig) $(archType) -ci -skiptests -skipbuildpackages + displayName: Build product + + # Publish product output directory for consumption by tests. + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(buildProductRootFolderPath) + includeRootFolder: false + archiveType: $(archiveType) + tarCompression: $(tarCompression) + archiveExtension: $(archiveExtension) + artifactName: $(buildProductArtifactName) + displayName: 'product build' + + # Publish Logs + - task: PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + pathtoPublish: $(Build.SourcesDirectory)/artifacts/log + artifactName: 'BuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)' + continueOnError: true + condition: always() diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index f6b5ef854ab459..20ac28bbd8e25a 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -80,7 +80,7 @@ stages: - Windows_NT_arm64 jobParameters: isOfficialBuild: ${{ variables.isOfficialBuild }} - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release # # Build libraries AllConfigurations for packages @@ -95,7 +95,7 @@ stages: framework: allConfigurations isOfficialBuild: ${{ variables.isOfficialBuild }} isOfficialAllConfigurations: true - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release # # Installer Build @@ -103,7 +103,7 @@ stages: - template: /eng/pipelines/installer/installer-matrix.yml parameters: jobParameters: - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release liveLibrariesBuildConfig: Release isOfficialBuild: ${{ variables.isOfficialBuild }} useOfficialAllConfigurations: true diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8b9b34408601fd..bb7dd476ec8f5d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -64,8 +64,26 @@ jobs: - THIRD-PARTY-NOTICES.TXT - docs/* - src/installer/* + - src/mono/* - src/libraries/* - eng/pipelines/installer/* + - eng/pipelines/mono/* + - eng/pipelines/libraries/* + - subset: mono + include: + - src/libraries/System.Private.CoreLib/* + exclude: + - eng/Version.Details.xml + - '*.md' + - LICENSE.TXT + - PATENTS.TXT + - THIRD-PARTY-NOTICES.TXT + - docs/* + - src/installer/* + - src/coreclr/* + - src/libraries/* + - eng/pipelines/installer/* + - eng/pipelines/coreclr/* - eng/pipelines/libraries/* - subset: libraries exclude: @@ -76,8 +94,10 @@ jobs: - THIRD-PARTY-NOTICES.TXT - docs/* - src/installer/* + - src/mono/* - src/coreclr/* - eng/pipelines/coreclr/* + - eng/pipelines/mono/* - eng/pipelines/installer/* - subset: installer include: @@ -90,8 +110,10 @@ jobs: - THIRD-PARTY-NOTICES.TXT - docs/* - src/coreclr/* + - src/mono/* - src/libraries/* - eng/pipelines/coreclr/* + - eng/pipelines/mono/* - eng/pipelines/libraries/* # @@ -138,7 +160,6 @@ jobs: # # Build CoreCLR release -# Only when CoreCLR is changed # Always as they are needed by Installer and we always build and test the Installer. # - template: /eng/pipelines/common/platform-matrix.yml @@ -175,6 +196,50 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), eq(variables['isFullMatrix'], true)) +# +# Build Mono debug +# Only when Mono is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + buildConfig: debug + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_x64 + - Linux_musl_arm64 + - Windows_NT_x64 + - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono release +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + buildConfig: release + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_x64 + - Linux_musl_arm64 + - Windows_NT_x64 + - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + # # Build libraries using live CoreLib # These set of libraries are built always no matter what changed @@ -192,7 +257,7 @@ jobs: - Windows_NT_arm64 - Windows_NT_x86 jobParameters: - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -205,7 +270,7 @@ jobs: - OSX_x64 - Windows_NT_x64 jobParameters: - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release # # Libraries Build that only run when libraries is changed # @@ -219,7 +284,7 @@ jobs: - Windows_NT_x86 jobParameters: framework: netcoreapp - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), @@ -255,7 +320,7 @@ jobs: isFullMatrix: ${{ variables.isFullMatrix }} framework: allConfigurations runTests: true - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), @@ -276,7 +341,7 @@ jobs: - Windows_NT_arm - Windows_NT_arm64 jobParameters: - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release liveLibrariesBuildConfig: Release - template: /eng/pipelines/installer/installer-matrix.yml @@ -289,7 +354,7 @@ jobs: - Linux_musl_x64 - Windows_NT_x64 jobParameters: - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} # @@ -306,7 +371,7 @@ jobs: - Windows_NT_x64 jobParameters: isOfficialBuild: false - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release testScope: innerloop condition: >- or( @@ -432,7 +497,7 @@ jobs: isFullMatrix: ${{ variables.isFullMatrix }} framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} dependsOnTestArchitecture: x64 condition: >- @@ -465,7 +530,7 @@ jobs: isFullMatrix: ${{ variables.isFullMatrix }} framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: release + liveRuntimeBuildConfig: release dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} dependsOnTestArchitecture: x64 condition: >- @@ -489,7 +554,7 @@ jobs: jobParameters: framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: checked + liveRuntimeBuildConfig: checked dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} dependsOnTestArchitecture: x64 condition: >- @@ -510,7 +575,7 @@ jobs: jobParameters: framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: checked + liveRuntimeBuildConfig: checked dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} dependsOnTestArchitecture: x64 condition: >- @@ -533,7 +598,7 @@ jobs: jobParameters: framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: checked + liveRuntimeBuildConfig: checked dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} dependsOnTestArchitecture: x64 condition: >- From b71b56ddb782df0d9027ad13b26b9f60b47af2c5 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 20 Jan 2020 15:05:11 +0100 Subject: [PATCH 04/50] Fix yml syntax --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index bb7dd476ec8f5d..9a2142b653face 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -69,7 +69,7 @@ jobs: - eng/pipelines/installer/* - eng/pipelines/mono/* - eng/pipelines/libraries/* - - subset: mono + - subset: mono include: - src/libraries/System.Private.CoreLib/* exclude: From 3fc55c65b7a2f1b20a0cb264261179538d0ef8c4 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 20 Jan 2020 15:12:15 +0100 Subject: [PATCH 05/50] Fix yml #2 --- eng/pipelines/libraries/run-test-job.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 50c623df4f4a88..804c881587b3b5 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -17,11 +17,11 @@ parameters: variables: {} variables: - - _runtimeFlavorName: '' - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - _runtimeFlavorName: 'Mono' - - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - - _runtimeFlavorName: 'CoreCLR' + runtimeFlavorName: '' + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + _runtimeFlavorName: 'Mono' + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + _runtimeFlavorName: 'CoreCLR' jobs: - template: /eng/pipelines/libraries/base-job.yml From 8c1e766fa09905f368f072e56038bc61b5b25437 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 20 Jan 2020 15:44:23 +0100 Subject: [PATCH 06/50] Try another syntax --- eng/pipelines/installer/jobs/base-job.yml | 18 ++++++------------ eng/pipelines/libraries/base-job.yml | 12 +++--------- eng/pipelines/libraries/run-test-job.yml | 13 +++---------- eng/pipelines/libraries/variables.yml | 5 +++++ 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index 8ac7991b59bc84..593386f3068fa9 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -256,12 +256,6 @@ jobs: - name: AllArtifactsDownloadPath value: '' - - name: runtimeFlavorName - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - value: Mono - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - value: CoreCLR - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - name: liveRuntimeLegName value: ${{ format('{0}{1}_{2}_{3}', @@ -276,7 +270,7 @@ jobs: /p:RuntimeOverridePath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) /p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }} - name: RuntimeArtifactName - value: $(runtimeFlavorName)Product_$(liveRuntimeLegName) + value: variables['runtimeFlavorName']Product_$(liveRuntimeLegName) - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - name: liveLibrariesLegName @@ -378,17 +372,17 @@ jobs: downloadType: specific downloadPath: '$(Build.SourcesDirectory)/__download__/AllPlatforms/' itemPattern: | - $(runtimeFlavorName)Product_*/** + variables['runtimeFlavorName']Product_*/** libraries_bin_*/** - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - ${{ each platform in parameters.platforms }}: - task: ExtractFiles@1 - displayName: 'Unzip $(runtimeFlavorName) artifacts: ${{ platform }}' + displayName: 'Unzip variables['runtimeFlavorName'] artifacts: ${{ platform }}' inputs: archiveFilePatterns: | - $(Build.SourcesDirectory)/__download__/AllPlatforms/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* - destinationFolder: $(AllArtifactsDownloadPath)/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ + $(Build.SourcesDirectory)/__download__/AllPlatforms/variables['runtimeFlavorName']Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* + destinationFolder: $(AllArtifactsDownloadPath)/variables['runtimeFlavorName']Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ cleanUnpackFolder: false - task: ExtractFiles@1 displayName: 'Unzip Libraries artifacts: ${{ platform }}' @@ -404,7 +398,7 @@ jobs: unpackFolder: $(Build.SourcesDirectory)/$(RuntimeDownloadPath) artifactFileName: '$(RuntimeArtifactsName)$(archiveExtension)' artifactName: '$(RuntimeArtifactName)' - displayName: '$(runtimeFlavorName) artifacts' + displayName: 'variables['runtimeFlavorName'] artifacts' - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index e29be74b7a717e..26d290fb12a574 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -75,21 +75,15 @@ jobs: - _runtimeArtifactName: '' - _runtimeDownloadPath: '' - _runtimeArtifactsPathArg: '' - - _runtimeFlavorName: '' - - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - _runtimeFlavorName: 'Mono' - - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - - _runtimeFlavorName: 'CoreCLR' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - _runtimeDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/${{ parameters.runtimeFlavor }}' - - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: 'variables['runtimeFlavorName']Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' - _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)' # WebAssembly uses linux implementation detail - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: 'variables['runtimeFlavorName']Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' # Windows variables - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: @@ -122,6 +116,6 @@ jobs: unpackFolder: $(_runtimeDownloadPath) artifactFileName: '$(_runtimeArtifactName)$(archiveExtension)' artifactName: '$(_runtimeArtifactName)' - displayName: '${{ parameters.runtimeFlavorName }} build drop' + displayName: 'variables['runtimeFlavorName'] build drop' - ${{ parameters.steps }} diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 804c881587b3b5..d13eda8da3a230 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -16,13 +16,6 @@ parameters: condition: true variables: {} -variables: - runtimeFlavorName: '' - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - _runtimeFlavorName: 'Mono' - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - _runtimeFlavorName: 'CoreCLR' - jobs: - template: /eng/pipelines/libraries/base-job.yml parameters: @@ -39,7 +32,7 @@ jobs: condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, $(_runtimeFlavorName)) }} + displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, variables['runtimeFlavorName']) }} name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' @@ -57,7 +50,7 @@ jobs: - _skipTestRestoreArg: /p:SkipTestRestore=false - _testRunNamePrefixSuffix: '' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - _testRunNamePrefixSuffix: $(_runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} + - _testRunNamePrefixSuffix: variables['runtimeFlavorName']_${{ parameters.liveRuntimeBuildConfig }} - ${{ parameters.variables }} steps: @@ -83,7 +76,7 @@ jobs: $(_runtimeOSArg) /p:ArchGroup=${{ parameters.archType }} /p:ConfigurationGroup=${{ parameters.buildConfig }} - displayName: Override $(_runtimeFlavorName) from live drop + displayName: Override variables['runtimeFlavorName'] from live drop - template: /eng/pipelines/libraries/helix.yml parameters: diff --git a/eng/pipelines/libraries/variables.yml b/eng/pipelines/libraries/variables.yml index 9bb89d7d493847..4703eab55abca0 100644 --- a/eng/pipelines/libraries/variables.yml +++ b/eng/pipelines/libraries/variables.yml @@ -8,6 +8,11 @@ variables: value: /eng/pipelines/libraries - name: isFullMatrix value: ${{ notIn(variables['Build.Reason'], 'PullRequest') }} + - name: runtimeFlavorName + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + value: Mono + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + value: CoreCLR - name: includeWindowsOuterloop value: ${{ or(endsWith(variables['Build.DefinitionName'], 'windows'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }} - name: includeLinuxOuterloop From fc15f624d4e4886a45be30b7c074a5fd70db1a58 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 20 Jan 2020 15:49:48 +0100 Subject: [PATCH 07/50] Revert "Try another syntax" This reverts commit 8c1e766fa09905f368f072e56038bc61b5b25437. --- eng/pipelines/installer/jobs/base-job.yml | 18 ++++++++++++------ eng/pipelines/libraries/base-job.yml | 12 +++++++++--- eng/pipelines/libraries/run-test-job.yml | 13 ++++++++++--- eng/pipelines/libraries/variables.yml | 5 ----- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index 593386f3068fa9..8ac7991b59bc84 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -256,6 +256,12 @@ jobs: - name: AllArtifactsDownloadPath value: '' + - name: runtimeFlavorName + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + value: Mono + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + value: CoreCLR + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - name: liveRuntimeLegName value: ${{ format('{0}{1}_{2}_{3}', @@ -270,7 +276,7 @@ jobs: /p:RuntimeOverridePath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) /p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }} - name: RuntimeArtifactName - value: variables['runtimeFlavorName']Product_$(liveRuntimeLegName) + value: $(runtimeFlavorName)Product_$(liveRuntimeLegName) - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - name: liveLibrariesLegName @@ -372,17 +378,17 @@ jobs: downloadType: specific downloadPath: '$(Build.SourcesDirectory)/__download__/AllPlatforms/' itemPattern: | - variables['runtimeFlavorName']Product_*/** + $(runtimeFlavorName)Product_*/** libraries_bin_*/** - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - ${{ each platform in parameters.platforms }}: - task: ExtractFiles@1 - displayName: 'Unzip variables['runtimeFlavorName'] artifacts: ${{ platform }}' + displayName: 'Unzip $(runtimeFlavorName) artifacts: ${{ platform }}' inputs: archiveFilePatterns: | - $(Build.SourcesDirectory)/__download__/AllPlatforms/variables['runtimeFlavorName']Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* - destinationFolder: $(AllArtifactsDownloadPath)/variables['runtimeFlavorName']Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ + $(Build.SourcesDirectory)/__download__/AllPlatforms/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* + destinationFolder: $(AllArtifactsDownloadPath)/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ cleanUnpackFolder: false - task: ExtractFiles@1 displayName: 'Unzip Libraries artifacts: ${{ platform }}' @@ -398,7 +404,7 @@ jobs: unpackFolder: $(Build.SourcesDirectory)/$(RuntimeDownloadPath) artifactFileName: '$(RuntimeArtifactsName)$(archiveExtension)' artifactName: '$(RuntimeArtifactName)' - displayName: 'variables['runtimeFlavorName'] artifacts' + displayName: '$(runtimeFlavorName) artifacts' - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index 26d290fb12a574..e29be74b7a717e 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -75,15 +75,21 @@ jobs: - _runtimeArtifactName: '' - _runtimeDownloadPath: '' - _runtimeArtifactsPathArg: '' + - _runtimeFlavorName: '' + + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - _runtimeFlavorName: 'Mono' + - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + - _runtimeFlavorName: 'CoreCLR' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - _runtimeDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/${{ parameters.runtimeFlavor }}' - - _runtimeArtifactName: 'variables['runtimeFlavorName']Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' - _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)' # WebAssembly uses linux implementation detail - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - _runtimeArtifactName: 'variables['runtimeFlavorName']Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' # Windows variables - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: @@ -116,6 +122,6 @@ jobs: unpackFolder: $(_runtimeDownloadPath) artifactFileName: '$(_runtimeArtifactName)$(archiveExtension)' artifactName: '$(_runtimeArtifactName)' - displayName: 'variables['runtimeFlavorName'] build drop' + displayName: '${{ parameters.runtimeFlavorName }} build drop' - ${{ parameters.steps }} diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index d13eda8da3a230..804c881587b3b5 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -16,6 +16,13 @@ parameters: condition: true variables: {} +variables: + runtimeFlavorName: '' + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + _runtimeFlavorName: 'Mono' + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + _runtimeFlavorName: 'CoreCLR' + jobs: - template: /eng/pipelines/libraries/base-job.yml parameters: @@ -32,7 +39,7 @@ jobs: condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, variables['runtimeFlavorName']) }} + displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, $(_runtimeFlavorName)) }} name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' @@ -50,7 +57,7 @@ jobs: - _skipTestRestoreArg: /p:SkipTestRestore=false - _testRunNamePrefixSuffix: '' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - _testRunNamePrefixSuffix: variables['runtimeFlavorName']_${{ parameters.liveRuntimeBuildConfig }} + - _testRunNamePrefixSuffix: $(_runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} - ${{ parameters.variables }} steps: @@ -76,7 +83,7 @@ jobs: $(_runtimeOSArg) /p:ArchGroup=${{ parameters.archType }} /p:ConfigurationGroup=${{ parameters.buildConfig }} - displayName: Override variables['runtimeFlavorName'] from live drop + displayName: Override $(_runtimeFlavorName) from live drop - template: /eng/pipelines/libraries/helix.yml parameters: diff --git a/eng/pipelines/libraries/variables.yml b/eng/pipelines/libraries/variables.yml index 4703eab55abca0..9bb89d7d493847 100644 --- a/eng/pipelines/libraries/variables.yml +++ b/eng/pipelines/libraries/variables.yml @@ -8,11 +8,6 @@ variables: value: /eng/pipelines/libraries - name: isFullMatrix value: ${{ notIn(variables['Build.Reason'], 'PullRequest') }} - - name: runtimeFlavorName - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - value: Mono - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - value: CoreCLR - name: includeWindowsOuterloop value: ${{ or(endsWith(variables['Build.DefinitionName'], 'windows'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }} - name: includeLinuxOuterloop From 516c74efe9637900ce8bf657a25ef57cbdd3f6d9 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 21 Jan 2020 21:38:02 +0100 Subject: [PATCH 08/50] RuntimeFlavor and yml --- Directory.Build.props | 4 +++- eng/pipelines/common/platform-matrix.yml | 13 +++++++++++ eng/pipelines/common/xplat-setup.yml | 6 +++++ eng/pipelines/libraries/base-job.yml | 12 +++------- eng/pipelines/libraries/helix.yml | 2 ++ eng/pipelines/libraries/run-test-job.yml | 15 +++++-------- eng/testing/tests.targets | 22 +++++++++++-------- src/libraries/Directory.Build.props | 4 ++++ src/libraries/restore/runtime/runtime.depproj | 6 ++--- src/libraries/sendtohelix.proj | 2 ++ 10 files changed, 54 insertions(+), 32 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 390dd8455a6ed4..cbf29a7eaecf25 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -55,7 +55,9 @@ $(RuntimeConfiguration) - $(RuntimeConfiguration) + $(RuntimeConfiguration) + + Debug diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 784b2874c9ea74..2362f273f33604 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -1,4 +1,5 @@ parameters: + runtimeFlavor: 'coreclr' jobTemplate: '' buildConfig: '' platforms: [] @@ -40,6 +41,7 @@ jobs: image: ubuntu-16.04-cross-14.04-23cacb0-20191023143847 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -63,6 +65,7 @@ jobs: image: ubuntu-16.04-cross-arm64-cfdd435-20191023143847 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -87,6 +90,7 @@ jobs: image: alpine-3.9-WithNode-0fc54a3-20190918214015 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -114,6 +118,7 @@ jobs: image: ubuntu-16.04-cross-arm64-alpine-406629a-20191023143847 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -137,6 +142,7 @@ jobs: image: centos-7-f39df28-20191023143754 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -162,6 +168,7 @@ jobs: image: ubuntu-16.04-a50a721-20191023143845 registry: mcr jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -179,6 +186,7 @@ jobs: # osGroup: FreeBSD # archType: x64 # jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} # buildConfig: ${{ parameters.buildConfig }} # # There are no FreeBSD helix queues, so we don't run tests at the moment. # helixQueues: @@ -197,6 +205,7 @@ jobs: archType: x64 platform: OSX_x64 jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -216,6 +225,7 @@ jobs: archType: x64 platform: Windows_NT_x64 jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -235,6 +245,7 @@ jobs: archType: x86 platform: Windows_NT_x86 jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -253,6 +264,7 @@ jobs: archType: arm platform: Windows_NT_arm jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: @@ -272,6 +284,7 @@ jobs: archType: arm64 platform: Windows_NT_arm64 jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} stagedBuild: ${{ parameters.stagedBuild }} buildConfig: ${{ parameters.buildConfig }} ${{ if eq(parameters.passPlatforms, true) }}: diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 61896ffb63a0ea..f4ea5004374a3f 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -55,6 +55,12 @@ jobs: archType: ${{ parameters.archType }} platform: ${{ parameters.platform }} + - name: runtimeFlavorName + ${{ if eq(parameters.jobParameters.runtimeFlavor, 'mono') }}: + value: Mono + ${{ if eq(parameters.jobParameters.runtimeFlavor, 'coreclr') }}: + value: CoreCLR + ${{ if ne(parameters.container, '') }}: ${{ if eq(parameters.container.registry, 'mcr') }}: container: ${{ format('{0}:{1}', 'mcr.microsoft.com/dotnet-buildtools/prereqs', parameters.container.image) }} diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index e29be74b7a717e..b57072d3058436 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -75,21 +75,15 @@ jobs: - _runtimeArtifactName: '' - _runtimeDownloadPath: '' - _runtimeArtifactsPathArg: '' - - _runtimeFlavorName: '' - - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - _runtimeFlavorName: 'Mono' - - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - - _runtimeFlavorName: 'CoreCLR' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - _runtimeDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/${{ parameters.runtimeFlavor }}' - - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: '$(runtimeFlavorName)Product_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}' - _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)' # WebAssembly uses linux implementation detail - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - _runtimeArtifactName: '${{ parameters.runtimeFlavorName }}Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' + - _runtimeArtifactName: '$(runtimeFlavorName)Product_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' # Windows variables - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: @@ -122,6 +116,6 @@ jobs: unpackFolder: $(_runtimeDownloadPath) artifactFileName: '$(_runtimeArtifactName)$(archiveExtension)' artifactName: '$(_runtimeArtifactName)' - displayName: '${{ parameters.runtimeFlavorName }} build drop' + displayName: '$(runtimeFlavorName) build drop' - ${{ parameters.steps }} diff --git a/eng/pipelines/libraries/helix.yml b/eng/pipelines/libraries/helix.yml index 52f8bde7513e0e..e2bde7b58e84a3 100644 --- a/eng/pipelines/libraries/helix.yml +++ b/eng/pipelines/libraries/helix.yml @@ -1,4 +1,5 @@ parameters: + runtimeFlavor: '' archGroup: '' configuration: '' creator: '' @@ -14,6 +15,7 @@ steps: - script: ${{ parameters.msbuildScript }} $(Build.SourcesDirectory)/src/libraries/sendtohelix.proj /t:test + /p:RuntimeFlavor=${{ parameters.runtimeFlavor }} /p:ArchGroup=${{ parameters.archGroup }} /p:ConfigurationGroup=${{ parameters.configuration }} /p:OSGroup=${{ parameters.targetOS }} diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 804c881587b3b5..147073968e4026 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -16,13 +16,6 @@ parameters: condition: true variables: {} -variables: - runtimeFlavorName: '' - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - _runtimeFlavorName: 'Mono' - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - _runtimeFlavorName: 'CoreCLR' - jobs: - template: /eng/pipelines/libraries/base-job.yml parameters: @@ -39,7 +32,7 @@ jobs: condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, $(_runtimeFlavorName)) }} + displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, $(runtimeFlavorName)) }} name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' @@ -57,7 +50,7 @@ jobs: - _skipTestRestoreArg: /p:SkipTestRestore=false - _testRunNamePrefixSuffix: '' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - _testRunNamePrefixSuffix: $(_runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} + - _testRunNamePrefixSuffix: $(runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} - ${{ parameters.variables }} steps: @@ -81,12 +74,14 @@ jobs: - script: $(_msbuildCommand) src/libraries/restore/runtime/runtime.depproj $(_runtimeArtifactsPathArg) $(_runtimeOSArg) + /p:RuntimeFlavor=${{ parameters.runtimeFlavor }} /p:ArchGroup=${{ parameters.archType }} /p:ConfigurationGroup=${{ parameters.buildConfig }} - displayName: Override $(_runtimeFlavorName) from live drop + displayName: Override $(runtimeFlavorName) from live drop - template: /eng/pipelines/libraries/helix.yml parameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} targetOS: ${{ parameters.osGroup }} archGroup: ${{ parameters.archType }} configuration: ${{ parameters.buildConfig }} diff --git a/eng/testing/tests.targets b/eng/testing/tests.targets index d692ebb1b66efc..f35845fb73d41d 100644 --- a/eng/testing/tests.targets +++ b/eng/testing/tests.targets @@ -17,7 +17,8 @@ $(RunScriptHostDir)dotnet.exe $(RunScriptHostDir)dotnet - $(RunWorkingDirectory)mono.issues.rsp + + $(RunWorkingDirectory)$(MonoRspFileName) @@ -76,17 +77,19 @@ + - - - - + <_rspFile Include="$(TestRspFile)" Condition="'$(TestRspFile)' != ''" /> + <_rspFile Include="$(MonoProjectRoot)netcore\CoreFX.issues.rsp" /> + <_rspFile Include="$(MonoProjectRoot)netcore\CoreFX.issues_mac.rsp" Condition="'$(TargetOS)' == 'OSX'" /> + <_rspFile Include="$(MonoProjectRoot)netcore\CoreFX.issues_linux.rsp" Condition="'$(TargetOS)' == 'Linux'" /> + <_rspFile Include="$(MonoProjectRoot)netcore\CoreFX.issues_windows.rsp" Condition="'$(TargetOS)' == 'Windows_NT'" /> - + <_rspFileContent Include="$([System.IO.File]::ReadAllText(%(_rspFile.Identity)))" /> - + @@ -115,8 +118,9 @@ "$(RunScriptOutputPath)" --runtime-path "$(TestHostRootPath.TrimEnd('\/'))" - $(RunTestsCommand) --rsp-file "$(MonoRspFile)" - $(RunTestsCommand) --rsp-file "$(TestRspFile)" + + $(RunTestsCommand) --rsp-file "$(MonoRspFile)" + $(RunTestsCommand) --rsp-file "$(TestRspFile)" diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index e0a2a43c9a8384..37add714a07160 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -300,6 +300,10 @@ true + + mono.issues.rsp + + true diff --git a/src/libraries/restore/runtime/runtime.depproj b/src/libraries/restore/runtime/runtime.depproj index cda8a12dc618b5..c286eb87492768 100644 --- a/src/libraries/restore/runtime/runtime.depproj +++ b/src/libraries/restore/runtime/runtime.depproj @@ -4,7 +4,7 @@ $(ToolRuntimeRID) $(NoWarn);NU1603;NU1605 - true + true $(DefaultOSGroup) $(ConfigurationGroup) $(DefaultOSGroup) @@ -66,7 +66,7 @@ + Condition="'$(RuntimeFlavor)' != 'Mono'"> @@ -78,7 +78,7 @@ + Condition="'$(RuntimeFlavor)' == 'Mono'"> diff --git a/src/libraries/sendtohelix.proj b/src/libraries/sendtohelix.proj index 746c65c35836a8..c3eb763877de49 100644 --- a/src/libraries/sendtohelix.proj +++ b/src/libraries/sendtohelix.proj @@ -65,6 +65,8 @@ --> call RunTests.cmd --runtime-path %HELIX_CORRELATION_PAYLOAD% ./RunTests.sh --runtime-path "$HELIX_CORRELATION_PAYLOAD" + + $(HelixCommand) --rsp-file "$(MonoRspFileName)" + + Windows_NT + Linux + OSX + + x64 + $(ArchGroup) + + Debug + + $(OSGroup).$(Platform).$(Configuration) + + + + + $(MSBuildThisFileDirectory) + $(ProjectDir)src\ + $(ArtifactsBinDir)mono\$(PlatformConfigPathPart)\ + + $(ArtifactsObjDir)mono\$(MSBuildProjectName)\ + + + + + 5.0.0 + + + false + $(PackageVersion) + + preview8 + + + + + true + true + true + true + true + true + + + + 8.0 + true + + + + + Portable + + + + + false + - diff --git a/src/mono/Directory.Build.targets b/src/mono/Directory.Build.targets index 92465d4434802e..da331b322fb132 100644 --- a/src/mono/Directory.Build.targets +++ b/src/mono/Directory.Build.targets @@ -1,4 +1,3 @@ - diff --git a/src/mono/dir.common.props b/src/mono/dir.common.props deleted file mode 100644 index 00282d2c81186b..00000000000000 --- a/src/mono/dir.common.props +++ /dev/null @@ -1,102 +0,0 @@ - - - - - $(__BuildArch) - x64 - x64 - - $(__BuildType) - Debug - Debug - Release - Checked - - $(__BuildOS) - Windows_NT - Linux - OSX - - - <__BuildOS>$(BuildOS) - <__BuildArch>$(BuildArch) - - $(BuildType) - $(BuildArch) - - $(BuildOS).$(BuildArch).$(BuildType) - - - - - - - <__ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory) - $(__ProjectDir)\ - $(ProjectDir)\..\..\ - $(MSBuildThisFileDirectory) - - $(RootRepoDir)artifacts\obj\mono\$(MSBuildProjectName)\ - - $(__SourceDir)\ - $(ProjectDir)src\ - - $(__RootBinDir)\ - $(RootRepoDir)artifacts\ - - $(__BinDir)\ - $(RootBinDir)bin\mono\$(PlatformConfigPathPart)\ - - - - - - 5.0.0 - - - false - $(PackageVersion) - - preview8 - - - - - true - true - true - true - true - - true - - - - - 8.0 - true - - - - - Portable - - - - - - - true - - - - - true - - - - - false - - - diff --git a/src/mono/mono.proj b/src/mono/mono.proj index e3842117bf9e1e..27e647d3c152cd 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -46,12 +46,12 @@ - <_MonoRuntimeFilePath Condition="'$(BuildOS)' == 'Windows_NT'">$(MonoObjDir)$(Platform)\Bin\$(Configuration)\mono-2.0-sgen.dll - <_MonoRuntimeFilePath Condition="'$(BuildOS)' == 'OSX'">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.dylib + <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true'">$(MonoObjDir)$(Platform)\Bin\$(Configuration)\mono-2.0-sgen.dll + <_MonoRuntimeFilePath Condition="'$(TargetsOSX)' == 'true'">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.so - <_CoreClrFileName Condition="'$(BuildOS)' == 'Windows_NT'">coreclr.dll - <_CoreClrFileName Condition="'$(BuildOS)' == 'OSX'">libcoreclr.dylib + <_CoreClrFileName Condition="'$(TargetsWindows)' == 'true'">coreclr.dll + <_CoreClrFileName Condition="'$(TargetsOSX)' == 'true'">libcoreclr.dylib <_CoreClrFileName Condition="'$(_CoreClrFileName)' == ''">libcoreclr.so diff --git a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj index d9a33a740e50e2..97c177be9f2b8a 100644 --- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj +++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj @@ -33,9 +33,6 @@ - $(BuildType) - $(BuildArch) - arm true false diff --git a/src/mono/netcore/nuget/Directory.Build.props b/src/mono/netcore/nuget/Directory.Build.props index a4160fb5fa7f54..56e8310b2cd2e5 100644 --- a/src/mono/netcore/nuget/Directory.Build.props +++ b/src/mono/netcore/nuget/Directory.Build.props @@ -14,16 +14,12 @@ <_parseDistroRid>$(__DistroRid) - <_parseDistroRid Condition="'$(_parseDistroRid)' == '' and '$(__BuildOS)' == 'OSX'">osx.10.12-x64 + <_parseDistroRid Condition="'$(_parseDistroRid)' == '' and '$(TargetsOSX)' == 'true'">osx.10.12-x64 <_distroRidIndex>$(_parseDistroRid.IndexOfAny("-")) <_archRidIndex>$([MSBuild]::Add($(_distroRidIndex), 1)) $(_parseDistroRid.SubString(0, $(_distroRidIndex))) win10 - $(_parseDistroRid.SubString($(_archRidIndex))) - $(Platform) - $(BuildArch) - $(OSRid) Windows_NT;OSX;Android;Linux;FreeBSD @@ -43,7 +39,7 @@ <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'osx'">OSX <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'android'">Android <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'win'">Windows_NT - <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(__BuildOS)' != ''">$(__BuildOS) + <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(OSGroup)' != ''">$(OSGroup) <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == ''">Linux <_isSupportedOSGroup Condition="!$(SupportedPackageOSGroups.Contains(';$(_derivedPackageTargetOSGroup);'))">false diff --git a/src/mono/netcore/nuget/builds.targets b/src/mono/netcore/nuget/builds.targets index d58f010d3939b8..6aa99f6694ecac 100644 --- a/src/mono/netcore/nuget/builds.targets +++ b/src/mono/netcore/nuget/builds.targets @@ -9,7 +9,7 @@ true - false + false From ebb5853929d59675315e3b3ecd88706660ab6513 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:01:34 +0100 Subject: [PATCH 32/50] Update container for linux arm64 --- 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 9a675cdb28ccc2..3cd2d353c977da 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -62,7 +62,7 @@ jobs: archType: arm64 platform: Linux_arm64 container: - image: ubuntu-16.04-cross-arm64-cfdd435-20191023143847 + image: ubuntu-16.04-cross-arm64-cfdd435-20200121150126 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} From 695feb497a33fb591799866443ef3c9edb32a281 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:06:01 +0100 Subject: [PATCH 33/50] Disable failing mono configurations in yml --- eng/pipelines/runtime.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index fc659024f4b002..b10ef76dcde841 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -207,10 +207,10 @@ jobs: platforms: - OSX_x64 - Linux_x64 - - Linux_arm - - Linux_arm64 + # - Linux_arm + # - Linux_arm64 - Linux_musl_x64 - - Linux_musl_arm64 + # - Linux_musl_arm64 - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm @@ -231,10 +231,10 @@ jobs: platforms: - OSX_x64 - Linux_x64 - - Linux_arm - - Linux_arm64 + # - Linux_arm + # - Linux_arm64 - Linux_musl_x64 - - Linux_musl_arm64 + # - Linux_musl_arm64 - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm From be296304f8152c64f719d80793b3f477f73ad7ba Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:08:29 +0100 Subject: [PATCH 34/50] Revert alpine image update --- 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 3cd2d353c977da..7e049cb1b48be1 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -87,7 +87,7 @@ jobs: archType: x64 platform: Linux_musl_x64 container: - image: alpine-3.9-WithNode-0fc54a3-20200121145958 + image: alpine-3.9-WithNode-0fc54a3-20190918214015 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} From 77207be4c0eb1f95ea93662df356e1db510a6bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 11:19:14 +0100 Subject: [PATCH 35/50] Foce clang for mono unix build --- eng/pipelines/mono/templates/build-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 903fc2305ccb52..64c8ae76ccd8e0 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -61,7 +61,7 @@ jobs: # Build - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - - script: ./mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci + - script: CC=clang CXX=clang++ ./mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci displayName: Build product - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - script: mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci From fd6d5992da8a6053d75c3908ce21be95842927f2 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:19:40 +0100 Subject: [PATCH 36/50] Use alpine image based on runtime flavor --- eng/pipelines/common/platform-matrix.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 7e049cb1b48be1..3e0e1ce411628c 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -87,7 +87,11 @@ jobs: archType: x64 platform: Linux_musl_x64 container: - image: alpine-3.9-WithNode-0fc54a3-20190918214015 + # alpine coreclr cmake errors on newer builds + ${{ if eq(parameters.runtimeFlavor, 'mono') }} + image: alpine-3.9-WithNode-0fc54a3-20200121145958 + ${{ if ne(parameters.runtimeFlavor, 'mono') }} + image: alpine-3.9-WithNode-0fc54a3-20190918214015 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} From b453b0718a741419c6102f4ed873f16425c46615 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:21:13 +0100 Subject: [PATCH 37/50] Fix yml --- eng/pipelines/common/platform-matrix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 3e0e1ce411628c..46eef081e0b2c8 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -88,9 +88,9 @@ jobs: platform: Linux_musl_x64 container: # alpine coreclr cmake errors on newer builds - ${{ if eq(parameters.runtimeFlavor, 'mono') }} + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: image: alpine-3.9-WithNode-0fc54a3-20200121145958 - ${{ if ne(parameters.runtimeFlavor, 'mono') }} + ${{ if ne(parameters.runtimeFlavor, 'mono') }}: image: alpine-3.9-WithNode-0fc54a3-20190918214015 registry: mcr jobParameters: From e46af53760ec061ae82dd7979f769bfeff7a4896 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:38:52 +0100 Subject: [PATCH 38/50] Yml updates --- eng/pipelines/libraries/run-test-job.yml | 4 ++-- eng/pipelines/runtime.yml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 2453726b9b788c..0859b2ab0e5b86 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -32,8 +32,8 @@ jobs: condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, variables.runtimeFlavorName) }} - name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} + displayName: 'Test Run ${{ parameters.liveRuntimeBuildConfig }} $(runtimeFlavorName)' + name: 'test_run_${{ parameters.liveRuntimeBuildConfig }}_${{ parameters.runtimeFlavor }}' ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' name: test_run diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index b10ef76dcde841..8c5f860534f3ff 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -203,6 +203,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono buildConfig: debug platforms: - OSX_x64 @@ -227,6 +228,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono buildConfig: release platforms: - OSX_x64 From 614de00870b6de6639d75da07f58c52e1ac5bc61 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 11:41:48 +0100 Subject: [PATCH 39/50] Another yml display name approach --- eng/pipelines/libraries/run-test-job.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 0859b2ab0e5b86..1f2de2a9fc0d49 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -32,8 +32,8 @@ jobs: condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - displayName: 'Test Run ${{ parameters.liveRuntimeBuildConfig }} $(runtimeFlavorName)' - name: 'test_run_${{ parameters.liveRuntimeBuildConfig }}_${{ parameters.runtimeFlavor }}' + displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} + name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: displayName: 'Test Run' name: test_run From 1e97f4098a35f9a2d497d2f81eacd5822211db58 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 12:31:21 +0100 Subject: [PATCH 40/50] Honor RuntimeArtifactsPath --- eng/liveBuilds.targets | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index f754c165b03063..a63c17866df12d 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -17,6 +17,10 @@ $([MSBuild]::NormalizeDirectory('$(MonoOverridePath)')) $([MSBuild]::NormalizeDirectory('$(LibrariesOverridePath)')) $([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigurationsOverridePath)')) + + + $(RuntimeArtifactsPath) + $(RuntimeArtifactsPath) $(RuntimeConfiguration) - $(RuntimeConfiguration) + $(RuntimeConfiguration) + + Debug From 7beff64c673de36f20877fa6930ffc0dcebec49d Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 13:29:13 +0100 Subject: [PATCH 42/50] Fix installer build --- eng/pipelines/installer/jobs/base-job.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index c8b0d9b376a202..b4ef158fc00f05 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -267,7 +267,7 @@ jobs: value: 'artifacts/transport/${{ parameters.runtimeFlavor }}' - name: RuntimeArtifactsArgs value: >- - /p:RuntimeOverridePath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) + /p:RuntimeArtifactsPath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) /p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }} - name: RuntimeArtifactName value: $(runtimeFlavorName)Product_$(liveRuntimeLegName) @@ -397,7 +397,7 @@ jobs: - template: /eng/pipelines/common/download-artifact-step.yml parameters: unpackFolder: $(Build.SourcesDirectory)/$(RuntimeDownloadPath) - artifactFileName: '$(RuntimeArtifactsName)$(archiveExtension)' + artifactFileName: '$(RuntimeArtifactName)$(archiveExtension)' artifactName: '$(RuntimeArtifactName)' displayName: '$(runtimeFlavorName) artifacts' From 5d0de8d8872e9d37f861a8b6e5d0bb5c7cd4a05f Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 15:26:40 +0100 Subject: [PATCH 43/50] Fix installer RuntimeArtifactsPath --- eng/pipelines/installer/jobs/base-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index b4ef158fc00f05..385762a03cf770 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -267,7 +267,7 @@ jobs: value: 'artifacts/transport/${{ parameters.runtimeFlavor }}' - name: RuntimeArtifactsArgs value: >- - /p:RuntimeArtifactsPath=${{ parameters.buildCommandSourcesDirectory }}$(RuntimeDownloadPath) + /p:RuntimeArtifactsPath=$(buildCommandSourcesDirectory)$(RuntimeDownloadPath) /p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }} - name: RuntimeArtifactName value: $(runtimeFlavorName)Product_$(liveRuntimeLegName) From 58fe4e7d7593ad9909728dfb27b1f9ec4b2891c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 14:57:43 +0100 Subject: [PATCH 44/50] Use clang differently --- eng/pipelines/mono/templates/build-job.yml | 2 +- src/mono/mono.proj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 64c8ae76ccd8e0..903fc2305ccb52 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -61,7 +61,7 @@ jobs: # Build - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - - script: CC=clang CXX=clang++ ./mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci + - script: ./mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci displayName: Build product - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - script: mono$(scriptExt) -configuration $(buildConfig) -arch $(archType) -ci diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 27e647d3c152cd..a1c4b88d52af9f 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -20,7 +20,7 @@ <_MonoConfigureParams Condition="$(MonoEnableLLVM) == true">$(_MonoConfigureParams) --enable--llvm - <_MonoConfigureParams>$(_MonoConfigureParams) --with-core=only CFLAGS="$(_MonoExtraCFLAGS)" CXXFLAGS="$(_MonoExtraCXXFLAGS)" + <_MonoConfigureParams>$(_MonoConfigureParams) --with-core=only CC=clang CXX=clang++ CFLAGS="$(_MonoExtraCFLAGS)" CXXFLAGS="$(_MonoExtraCXXFLAGS)" From 90788fcd21810f2deb62fa9f903f81c9f5ff88f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 15:17:55 +0100 Subject: [PATCH 45/50] Disable Windows runs Fails due to https://github.com/dotnet/runtime/issues/1933 --- eng/pipelines/runtime.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8c5f860534f3ff..36acdf52b44af1 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -212,7 +212,7 @@ jobs: # - Linux_arm64 - Linux_musl_x64 # - Linux_musl_arm64 - - Windows_NT_x64 + # - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm # - Windows_NT_arm64 @@ -237,7 +237,7 @@ jobs: # - Linux_arm64 - Linux_musl_x64 # - Linux_musl_arm64 - - Windows_NT_x64 + # - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm # - Windows_NT_arm64 From cfd3e7934916c14d21b82df8e9bb459791d22f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 15:15:53 +0100 Subject: [PATCH 46/50] Disable more tests --- src/mono/netcore/CoreFX.issues.rsp | 26 ++++++++++++++++++++++++ src/mono/netcore/CoreFX.issues_linux.rsp | 7 +++++++ 2 files changed, 33 insertions(+) diff --git a/src/mono/netcore/CoreFX.issues.rsp b/src/mono/netcore/CoreFX.issues.rsp index 57fca8178b414c..3c05a6ac3ae01e 100644 --- a/src/mono/netcore/CoreFX.issues.rsp +++ b/src/mono/netcore/CoreFX.issues.rsp @@ -26,6 +26,13 @@ # https://github.com/mono/mono/issues/14858 -nomethod System.Collections.Specialized.Tests.NameValueCollectionCtorTests.Ctor_NegativeCapacity_ThrowsArgumentOutOfRangeException +#################################################################### +## System.Collections.Concurrent.Tests +#################################################################### + +# fails only with release mono +-nomethod System.Collections.Concurrent.Tests.ConcurrentQueueTests.ReferenceTypes_NulledAfterDequeue + #################################################################### ## System.Diagnostics.Tracing.Tests #################################################################### @@ -353,6 +360,9 @@ -nomethod System.Reflection.Tests.AssemblyTests.LoadFile_PartiallyQualifiedPath_ThrowsArgumentException -nomethod System.Reflection.Tests.AssemblyTests.LoadFile_NoSuchPath_ThrowsFileNotFoundException +# fails on Helix +-nomethod System.Reflection.Tests.AssemblyTests.LoadFromStream_Location_IsEmpty + #################################################################### ## System.Runtime.InteropServices.Tests #################################################################### @@ -800,6 +810,15 @@ -nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromNativeImagePath_PartiallyQualifiedPath_ThrowsArgumentException -nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromNativeImagePath_PartiallyQualifiedPath_ThrowsArgumentException2 +# fails +-nomethod System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadNonExistentInDefaultContext +-nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidUserAssembly +-nomethod System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext +-nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_AssemblyNotFound +-nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly +-nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByStream_ValidUserAssembly +-nomethod System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly + #################################################################### ## System.Reflection.MetadataLoadContext.Tests #################################################################### @@ -831,6 +850,13 @@ -nomethod System.Tests.ReflectionTests.* -nomethod System.Net.Http.Tests.Utf8StringContentTests.* +#################################################################### +## System.Text.RegularExpressions.Tests +#################################################################### + +# hits OOM +-nomethod System.Text.RegularExpressions.Tests.RegexMatchTests.Match_Timeout_Loop_Throws + #################################################################### ## System.ComponentModel.Composition.Registration.Tests #################################################################### diff --git a/src/mono/netcore/CoreFX.issues_linux.rsp b/src/mono/netcore/CoreFX.issues_linux.rsp index b442e548ecd7a4..52fcd5e073a56b 100644 --- a/src/mono/netcore/CoreFX.issues_linux.rsp +++ b/src/mono/netcore/CoreFX.issues_linux.rsp @@ -37,3 +37,10 @@ # https://github.com/mono/mono/issues/18067 LLVM: try-catch doesn't catch an exception -nomethod System.Reflection.Tests.BindingFlagsDoNotWrapTests.* + +# fail on Helix on RedHat systems because libgdiplus can't be loaded +-nomethod System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream +-nomethod System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.ValidateBasicObjectsRoundtrip +-nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.BinaryFormattedResources +-nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.StreamResources +-nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.BinaryFormattedResourcesWithoutTypeName From 73bae921d8ea5c6790a7fa1b69a0e183169fe4b5 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Wed, 22 Jan 2020 15:31:58 +0100 Subject: [PATCH 47/50] Disable mono windows test runs --- eng/pipelines/runtime.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 36acdf52b44af1..63de290cd320cb 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -212,7 +212,7 @@ jobs: # - Linux_arm64 - Linux_musl_x64 # - Linux_musl_arm64 - # - Windows_NT_x64 + - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm # - Windows_NT_arm64 @@ -237,7 +237,7 @@ jobs: # - Linux_arm64 - Linux_musl_x64 # - Linux_musl_arm64 - # - Windows_NT_x64 + - Windows_NT_x64 # - Windows_NT_x86 # - Windows_NT_arm # - Windows_NT_arm64 @@ -492,7 +492,7 @@ jobs: runtimeFlavor: mono buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - - Windows_NT_x64 + # - Windows_NT_x64 - OSX_x64 - Linux_x64 helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml From b6df298b44e394dcd36c3c176cd3f73076b8ad28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 17:24:31 +0100 Subject: [PATCH 48/50] Fix doc about RuntimeFlavor --- docs/workflow/testing/mono/testing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/workflow/testing/mono/testing.md b/docs/workflow/testing/mono/testing.md index 164ac4811bb59c..f634d217d31875 100644 --- a/docs/workflow/testing/mono/testing.md +++ b/docs/workflow/testing/mono/testing.md @@ -6,14 +6,14 @@ The runtime tests will be available at a later date. ## Running Library Tests Running library tests against Mono is straightforward regardless of configuration. Simply run the following commands: -1. Build and set the TestRuntimeFlavor +1. Build and set the RuntimeFlavor ```bash -./build.sh /p:TestRuntimeFlavor=mono +./build.sh /p:RuntimeFlavor=mono ``` or on Windows ```bat -build.cmd /p:TestRuntimeFlavor=mono +build.cmd /p:RuntimeFlavor=mono ``` 2. cd into the test library of your choice (`cd src/libraries//tests`) @@ -21,5 +21,5 @@ build.cmd /p:TestRuntimeFlavor=mono 3. Run the tests ``` -dotnet msbuild /t:BuildAndTest /p:TestRuntimeFlavor=mono +dotnet msbuild /t:BuildAndTest /p:RuntimeFlavor=mono ``` From 480e7cbb23b7b4681e9c59a6903a9788d955fad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 17:26:22 +0100 Subject: [PATCH 49/50] Disable more tests --- src/mono/netcore/CoreFX.issues_linux.rsp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mono/netcore/CoreFX.issues_linux.rsp b/src/mono/netcore/CoreFX.issues_linux.rsp index 52fcd5e073a56b..5cd79c59942da3 100644 --- a/src/mono/netcore/CoreFX.issues_linux.rsp +++ b/src/mono/netcore/CoreFX.issues_linux.rsp @@ -41,6 +41,9 @@ # fail on Helix on RedHat systems because libgdiplus can't be loaded -nomethod System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream -nomethod System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.ValidateBasicObjectsRoundtrip +-nomethod System.Resources.Tests.ResourceManagerTests.GetObject_Images +-nomethod System.Resources.Tests.ResourceManagerTests.GetObject_Images_ResourceSet +-nomethod System.Resources.Tests.ResourceManagerTests.GetResourceSet_Images -nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.BinaryFormattedResources -nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.StreamResources -nomethod System.Resources.Extensions.Tests.PreserializedResourceWriterTests.BinaryFormattedResourcesWithoutTypeName From 060c3d82993d3b9684588d19a38b1bee21f11474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 22 Jan 2020 17:26:11 +0100 Subject: [PATCH 50/50] Fix Windows build --- src/mono/mono.proj | 7 +++++-- src/mono/msvc/Directory.Build.props | 3 +++ src/mono/msvc/Directory.Build.targets | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 src/mono/msvc/Directory.Build.props create mode 100644 src/mono/msvc/Directory.Build.targets diff --git a/src/mono/mono.proj b/src/mono/mono.proj index a1c4b88d52af9f..3b7451daf7e88a 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -39,14 +39,17 @@ <_MonoBuildParams>/p:MONO_BUILD_DIR_PREFIX=""$(MonoObjDir)"" /p:MONO_ENABLE_NETCORE=true /p:CL_MPCount=8 /v:minimal <_MonoBuildParams Condition="$(MonoEnableLLVM) == true">/p:MONO_ENABLE_LLVM=true $(_MonoBuildParams) + <_MonoBuildPlatform Condition="'$(Platform)' == 'x64'">x64 + <_MonoBuildPlatform Condition="'$(Platform)' == 'x86'">win32 - + - <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true'">$(MonoObjDir)$(Platform)\Bin\$(Configuration)\mono-2.0-sgen.dll + <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x64'">$(MonoObjDir)x64\Bin\$(Configuration)\mono-2.0-sgen.dll + <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x86'">$(MonoObjDir)Win32\Bin\$(Configuration)\mono-2.0-sgen.dll <_MonoRuntimeFilePath Condition="'$(TargetsOSX)' == 'true'">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.so diff --git a/src/mono/msvc/Directory.Build.props b/src/mono/msvc/Directory.Build.props new file mode 100644 index 00000000000000..4de865b5f1e158 --- /dev/null +++ b/src/mono/msvc/Directory.Build.props @@ -0,0 +1,3 @@ + + + diff --git a/src/mono/msvc/Directory.Build.targets b/src/mono/msvc/Directory.Build.targets new file mode 100644 index 00000000000000..c43cec29bd65d2 --- /dev/null +++ b/src/mono/msvc/Directory.Build.targets @@ -0,0 +1,3 @@ + + +