Update 6.0.2xx with the current state of 1xx (#13244)

* Update .vsts-ci.yml

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220205.1 (#13179)

[release/6.0.1xx] Update dependencies from dotnet/source-build-reference-packages

* Override Microsoft.Net.Sdk.WindowsDesktop references during source-build in Roslyn (#13093)

* override SDK for Microsoft.Net.Sdk.WindowsDesktop references in roslyn

* add new EmptySdk in the source build tarball

* remove roslyn solution filter patch

* Update dependencies from https://github.com/dotnet/arcade build 20220207.2 (#13186)

Microsoft.DotNet.CMake.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk
 From Version 6.0.0-beta.22102.3 -> To Version 6.0.0-beta.22107.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [release/6.0.1xx] Windows SDK projection update

* Update asp.net templates (#13193)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220210.1 (#13215)

[release/6.0.1xx] Update dependencies from dotnet/source-build-reference-packages

* Add test to compare msft and sb sdk contents (#13153)

* Update to SDK and previously-source-built 6.0.102. (#13221)

* Add CentOS Stream 9 container to CI matrix (#12955)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220215.1 (#13229)

[release/6.0.1xx] Update dependencies from dotnet/source-build-reference-packages

* Gather additional smoke test prereqs (#13233)

* Remove bootstrapping for CI builds now that we use CentOS7 previously-source-built (#13232)

* Update Version.Details.xml

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20220303.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 6.0.0-servicing.22151.1 -> To Version 6.0.0-servicing.22153.2

Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Logan Bussell <loganbussell@microsoft.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Sean Reeser <v-seanreeser@microsoft.com>
Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
Co-authored-by: William Godbe <wigodbe@microsoft.com>
Co-authored-by: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com>
Co-authored-by: Michael Simons <msimons@microsoft.com>
Co-authored-by: Chris Rummel <crummel@microsoft.com>
Co-authored-by: Omair Majid <omajid@redhat.com>
This commit is contained in:
Marc Paine 2022-03-04 18:43:03 -08:00 committed by GitHub
parent 090668da98
commit c3da28feba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 1766 additions and 213 deletions

View file

@ -166,9 +166,9 @@
<Sha>698fdad58fa64a55f16cd9562c90224cc498ed02</Sha> <Sha>698fdad58fa64a55f16cd9562c90224cc498ed02</Sha>
<SourceBuildTarball RepoName="xdt" ManagedOnly="true" /> <SourceBuildTarball RepoName="xdt" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.Workload.Emscripten.Manifest-6.0.100" Version="6.0.0" CoherentParentDependency="VS.Redist.Common.NetCore.SharedFramework.x64.6.0"> <Dependency Name="Microsoft.NET.Workload.Emscripten.Manifest-6.0.200" Version="6.0.1" CoherentParentDependency="VS.Redist.Common.NetCore.SharedFramework.x64.6.0">
<Uri>https://github.com/dotnet/emsdk</Uri> <Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>1ec2e17fcfd86bdd6f7e7246b6d527e94e34c15a</Sha> <Sha>e8ffccbd683205bf94e406e43556f8baca07dc5b</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build" Version="0.1.0-alpha.1.21519.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.SourceBuild.Intermediate.source-build" Version="0.1.0-alpha.1.21519.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/source-build</Uri> <Uri>https://github.com/dotnet/source-build</Uri>

View file

@ -172,7 +172,7 @@
or minor release, prebuilts may be needed. When the release is mature, prebuilts are not or minor release, prebuilts may be needed. When the release is mature, prebuilts are not
necessary, and this property is removed from the file. necessary, and this property is removed from the file.
--> -->
<PrivateSourceBuiltArtifactsPackageVersion>6.0.1-1</PrivateSourceBuiltArtifactsPackageVersion> <PrivateSourceBuiltArtifactsPackageVersion>6.0.2</PrivateSourceBuiltArtifactsPackageVersion>
</PropertyGroup> </PropertyGroup>
<!-- Workload manifest package versions --> <!-- Workload manifest package versions -->
<PropertyGroup> <PropertyGroup>

View file

@ -11,4 +11,4 @@ stages:
jobs: jobs:
- template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
parameters: parameters:
tarballResourceId: installer-build-resource installerBuildResourceId: installer-build-resource

View file

@ -11,4 +11,4 @@ stages:
jobs: jobs:
- template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
parameters: parameters:
tarballResourceId: installer-build-resource installerBuildResourceId: installer-build-resource

View file

@ -7,13 +7,15 @@ parameters:
# Dependent jobs that must be completed before this job will run # Dependent jobs that must be completed before this job will run
dependsOn: dependsOn:
# The resource id of the tarball to download and build # Resource id of the installer build to retrieve source/product tarball's from
tarballResourceId: current installerBuildResourceId: current
# The following parameters aren't expected to be passed in rather they are used for encapsulation # The following parameters aren't expected to be passed in rather they are used for encapsulation
# ----------------------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------------------
buildJobTimeout: 300
centOS7Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-source-build-20210714125450-5d87b80 centOS7Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-source-build-20210714125450-5d87b80
centOS8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-8-source-build-20211118190102-9355e7b centOS8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-8-source-build-20211118190102-9355e7b
centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9-20220107135047-4cd394c
debian9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch-20211001171226-047508b debian9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch-20211001171226-047508b
fedora33Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-33-20210222183538-031e7d2 fedora33Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-33-20210222183538-031e7d2
ubuntu1804Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-20210924170306-047508b ubuntu1804Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-20210924170306-047508b
@ -38,37 +40,49 @@ jobs:
strategy: strategy:
matrix: matrix:
CentOS7-Online: CentOS7-Online:
_BootstrapPrep: true _BootstrapPrep: false
_BuildArch: x64 _BuildArch: x64
_Container: ${{ parameters.centOS7Container }} _Container: ${{ parameters.centOS7Container }}
_ExcludeOmniSharpTests: true _ExcludeOmniSharpTests: true
_Platform: linux
_RunOnline: true _RunOnline: true
CentOS7-Offline:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOS7Container }}
_ExcludeOmniSharpTests: true
_Platform: linux
_RunOnline: false
${{ if ne(variables['Build.Reason'], 'PullRequest') }}: ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
CentOS7-Offline:
_BootstrapPrep: true
_BuildArch: x64
_Container: ${{ parameters.centOS7Container }}
_ExcludeOmniSharpTests: true
_RunOnline: false
CentOS8-Offline: CentOS8-Offline:
_BootstrapPrep: true _BootstrapPrep: false
_BuildArch: x64 _BuildArch: x64
_Container: ${{ parameters.centOS8Container }} _Container: ${{ parameters.centOS8Container }}
_ExcludeOmniSharpTests: false _ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false
CentOSStream9-Offline:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOSStream9Container }}
_ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false _RunOnline: false
Fedora33-Offline: Fedora33-Offline:
_BootstrapPrep: false _BootstrapPrep: false
_BuildArch: x64 _BuildArch: x64
_Container: ${{ parameters.fedora33Container }} _Container: ${{ parameters.fedora33Container }}
_ExcludeOmniSharpTests: false _ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false _RunOnline: false
Ubuntu1804-Offline: Ubuntu1804-Offline:
_BootstrapPrep: true _BootstrapPrep: false
_BuildArch: x64 _BuildArch: x64
_Container: ${{ parameters.ubuntu1804Container }} _Container: ${{ parameters.ubuntu1804Container }}
_ExcludeOmniSharpTests: false _ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false _RunOnline: false
timeoutInMinutes: 300 timeoutInMinutes: ${{ parameters.buildJobTimeout }}
variables: variables:
- ${{ if ne(variables['System.TeamProject'], 'public') }}: - ${{ if ne(variables['System.TeamProject'], 'public') }}:
- group: AzureDevOps-Artifact-Feeds-Pats - group: AzureDevOps-Artifact-Feeds-Pats
@ -79,20 +93,13 @@ jobs:
- checkout: self - checkout: self
clean: true clean: true
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- template: /src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml - template: /src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml
parameters: parameters:
buildArch: $(_BuildArch) buildArch: $(_BuildArch)
container: $(_Container) container: $(_Container)
excludeOmniSharpTests: $(_ExcludeOmniSharpTests) excludeOmniSharpTests: $(_ExcludeOmniSharpTests)
installerBuildResourceId: ${{ parameters.installerBuildResourceId }}
platform: $(_Platform)
prepScript: | prepScript: |
set -x set -x
@ -104,7 +111,6 @@ jobs:
docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball $(_Container) ./prep.sh ${customPrepArgs} docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball $(_Container) ./prep.sh ${customPrepArgs}
runOnline: $(_RunOnline) runOnline: $(_RunOnline)
tarballDir: ${{ parameters.tarballDir }} tarballDir: ${{ parameters.tarballDir }}
tarballResourceId: ${{ parameters.tarballResourceId }}
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- job: Rebuild_Tarball - job: Rebuild_Tarball
@ -121,8 +127,9 @@ jobs:
_PreviousSourceBuildArtifact: Build Tarball Fedora33-Offline_Artifacts _PreviousSourceBuildArtifact: Build Tarball Fedora33-Offline_Artifacts
_BuildArch: x64 _BuildArch: x64
_Container: ${{ parameters.fedora33Container }} _Container: ${{ parameters.fedora33Container }}
_Platform: linux
_RunOnline: false _RunOnline: false
timeoutInMinutes: 180 timeoutInMinutes: ${{ parameters.buildJobTimeout }}
variables: variables:
- ${{ if ne(variables['System.TeamProject'], 'public') }}: - ${{ if ne(variables['System.TeamProject'], 'public') }}:
- group: AzureDevOps-Artifact-Feeds-Pats - group: AzureDevOps-Artifact-Feeds-Pats
@ -133,15 +140,6 @@ jobs:
- checkout: self - checkout: self
clean: true clean: true
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- download: current - download: current
artifact: $(_PreviousSourceBuildArtifact) artifact: $(_PreviousSourceBuildArtifact)
patterns: '*.tar.gz' patterns: '*.tar.gz'
@ -159,6 +157,9 @@ jobs:
additionalBuildArgs: --with-sdk /tarball/.dotnet additionalBuildArgs: --with-sdk /tarball/.dotnet
buildArch: $(_BuildArch) buildArch: $(_BuildArch)
container: $(_Container) container: $(_Container)
installerBuildResourceId: ${{ parameters.installerBuildResourceId }}
isBootstrapped: true
platform: $(_Platform)
prepScript: | prepScript: |
set -x set -x
@ -168,4 +169,3 @@ jobs:
eval rm -f "$tarballFilePath" eval rm -f "$tarballFilePath"
runOnline: $(_RunOnline) runOnline: $(_RunOnline)
tarballDir: ${{ parameters.tarballDir }} tarballDir: ${{ parameters.tarballDir }}
tarballResourceId: ${{ parameters.tarballResourceId }}

View file

@ -13,6 +13,15 @@ parameters:
# Skip running the OmniSharp smoke-tests # Skip running the OmniSharp smoke-tests
excludeOmniSharpTests: false excludeOmniSharpTests: false
# Resource id of the installer build to retrieve source/product tarball's from
installerBuildResourceId: null
# Whether or not this is a bootstrapped build
isBootstrapped: false
# Platform the build is running on (linux, osx, win)
platform: null
# Script logic to prep the tarball for building # Script logic to prep the tarball for building
prepScript: null prepScript: null
@ -22,21 +31,32 @@ parameters:
# Directory to build the tarball in # Directory to build the tarball in
tarballDir: tarballDir:
# Resource id of the tarball to download and build
tarballResourceId: null
steps: steps:
- download: ${{ parameters.tarballResourceId }} - ${{ if ne(variables['System.TeamProject'], 'public') }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- download: ${{ parameters.installerBuildResourceId }}
artifact: BlobArtifacts artifact: BlobArtifacts
patterns: '**/dotnet-sdk-source*.tar.gz' patterns: '**/dotnet-sdk-source*.tar.gz'
displayName: Download Tarball displayName: Download Source Tarball
- download: ${{ parameters.installerBuildResourceId }}
artifact: BlobArtifacts
patterns: '**/dotnet-sdk-!(*-*)-${{ parameters.platform }}-${{ parameters.buildArch }}.tar.gz'
displayName: Download MSFT sdk Tarball
- script: | - script: |
set -x set -x
resourceIdPathSegment= resourceIdPathSegment=
if [ '${{ parameters.tarballResourceId }}' != 'current' ]; then if [ '${{ parameters.installerBuildResourceId }}' != 'current' ]; then
resourceIdPathSegment='${{ parameters.tarballResourceId }}/' resourceIdPathSegment='${{ parameters.installerBuildResourceId }}/'
fi fi
mkdir -p "${{ parameters.tarballDir }}" mkdir -p "${{ parameters.tarballDir }}"
@ -70,7 +90,16 @@ steps:
rm -f ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config rm -f ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config
cp NuGet.config ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config cp NuGet.config ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config
docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball -e EXCLUDE_OMNISHARP_TESTS=${{ parameters.excludeOmniSharpTests}} ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }} dockerVolumeArgs="-v ${{ parameters.tarballDir }}:/tarball"
dockerEnvArgs="-e EXCLUDE_OMNISHARP_TESTS=${{ parameters.excludeOmniSharpTests}}"
if [ '${{ parameters.isBootstrapped}}' != 'true' && '${{ parameters.installerBuildResourceId }}' != 'current' ]; then
dockerVolumeArgs+=" -v $(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/:/BlobArtifacts"
msftSdkTarballName=$(find "$(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/" -name "dotnet-sdk-*-${{ parameters.Platform }}-${{ parameters.buildArch }}.tar.gz" -exec basename {} \;)
dockerEnvArgs+=" -e MSFT_SDK_TARBALL_PATH=/BlobArtifacts/$msftSdkTarballName"
fi
docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }}
displayName: Run Tests displayName: Run Tests
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph. # Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.

View file

@ -106,9 +106,23 @@
" /> " />
</Target> </Target>
<Target Name="CreateSmokeTestPrereqs" <Target Name="CreateSmokeTestPrereqsTarball"
AfterTargets="RunSmokeTest" AfterTargets="RunSmokeTest"
Condition="'$(SkipSmokeTestPrereqsTarballCreation)' != 'true'" > Condition="'$(SkipSmokeTestPrereqsTarballCreation)' != 'true'"
DependsOnTargets="
CheckIfCreateSmokeTestPrereqsExistToPack;
CreateCreateSmokeTestPrereqsTarballIfPrereqsExist"/>
<Target Name="CheckIfCreateSmokeTestPrereqsExistToPack">
<ItemGroup>
<Prereqs Include="test/Microsoft.DotNet.SourceBuild.SmokeTests/bin/$(Configuration)/net6.0/smoke-tests/prereq-packages/**" />
</ItemGroup>
<Message Text="Found @(Prereqs->Count()) files in prereqs packages dir." Importance="High" />
</Target>
<Target Name="CreateCreateSmokeTestPrereqsTarballIfPrereqsExist"
Condition="'@(Prereqs->Count())' != '0'">
<PropertyGroup> <PropertyGroup>
<SmokeTestPrereqsTarballName>$(OutputPath)dotnet-smoke-test-prereqs.$(installerOutputPackageVersion).tar.gz</SmokeTestPrereqsTarballName> <SmokeTestPrereqsTarballName>$(OutputPath)dotnet-smoke-test-prereqs.$(installerOutputPackageVersion).tar.gz</SmokeTestPrereqsTarballName>
</PropertyGroup> </PropertyGroup>
@ -116,7 +130,7 @@
<Exec Command="tar --numeric-owner -czf $(SmokeTestPrereqsTarballName) ." <Exec Command="tar --numeric-owner -czf $(SmokeTestPrereqsTarballName) ."
WorkingDirectory="./test/Microsoft.DotNet.SourceBuild.SmokeTests/bin/$(Configuration)/net6.0/smoke-tests/prereq-packages/"/> WorkingDirectory="./test/Microsoft.DotNet.SourceBuild.SmokeTests/bin/$(Configuration)/net6.0/smoke-tests/prereq-packages/"/>
<Message Importance="High" Text="Packaged smoke-test prereqs to $(SmokeTestPrereqsTarballName)" /> <Message Importance="High" Text="Packaged smoke-test prereqs in '$(SmokeTestPrereqsTarballName)'" />
</Target> </Target>
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UploadToAzure" /> <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UploadToAzure" />

View file

@ -1,6 +1,6 @@
{ {
"tools": { "tools": {
"dotnet": "6.0.200-preview.21603.2" "dotnet": "6.0.200"
}, },
"msbuild-sdks": { "msbuild-sdks": {
"Microsoft.Build.CentralPackageVersions": "2.0.1", "Microsoft.Build.CentralPackageVersions": "2.0.1",

View file

@ -154,5 +154,6 @@
<ArcadeSharedFrameworkSdkOverride Include="Microsoft.DotNet.SharedFramework.Sdk" Group="ARCADE_SHARED_FX_SDK" Version="$(arcadeOutputPackageVersion)"/> <ArcadeSharedFrameworkSdkOverride Include="Microsoft.DotNet.SharedFramework.Sdk" Group="ARCADE_SHARED_FX_SDK" Version="$(arcadeOutputPackageVersion)"/>
<ILSdkOverride Include="Microsoft.NET.Sdk.IL" Group="IL" /> <ILSdkOverride Include="Microsoft.NET.Sdk.IL" Group="IL" />
<MsBuildTraversalSdkOverride Include="Microsoft.Build.Traversal" Group="MSBUILD_TRAVERSAL" Version="2.0.2"/> <MsBuildTraversalSdkOverride Include="Microsoft.Build.Traversal" Group="MSBUILD_TRAVERSAL" Version="2.0.2"/>
<WindowsDesktopSdkOverride Include="Microsoft.Net.Sdk.WindowsDesktop" Group="WINDOWS_DESKTOP" Location="$(ToolsLocalDir)EmptySdk"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -45,6 +45,7 @@
<ItemGroup> <ItemGroup>
<UseSourceBuiltSdkOverride Include="@(ArcadeSdkOverride)" /> <UseSourceBuiltSdkOverride Include="@(ArcadeSdkOverride)" />
<UseSourceBuiltSdkOverride Include="@(WindowsDesktopSdkOverride)" />
</ItemGroup> </ItemGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" /> <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

View file

@ -4,9 +4,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Xunit; using Xunit;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests namespace Microsoft.DotNet.SourceBuild.SmokeTests
{ {
@ -32,6 +34,35 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
Assert.Null(message); Assert.Null(message);
} }
public static void Compare(string baselineFileName, string actual, ITestOutputHelper outputHelper)
{
string baselineFilePath = GetBaselineFilePath(baselineFileName);
string baseline = File.ReadAllText(baselineFilePath);
string? message = null;
if (baseline != actual)
{
string actualBaselineFilePath = Path.Combine(Environment.CurrentDirectory, $"{baselineFileName}");
File.WriteAllText(actualBaselineFilePath, actual);
// Retrieve a diff in order to provide a UX which calls out the diffs.
string diff = DiffFiles(baselineFilePath, actualBaselineFilePath, outputHelper);
message = $"{Environment.NewLine}Baseline '{baselineFilePath}' does not match actual '{actualBaselineFilePath}`. {Environment.NewLine}"
+ $"{diff}{Environment.NewLine}";
}
Assert.Null(message);
}
public static string DiffFiles(string file1Path, string file2Path, ITestOutputHelper outputHelper)
{
(Process Process, string StdOut, string StdErr) diffResult =
ExecuteHelper.ExecuteProcess("git", $"diff --no-index {file1Path} {file2Path}", outputHelper);
Assert.Equal(1, diffResult.Process.ExitCode);
return diffResult.StdOut;
}
private static string GetBaselineFilePath(string baselineFileName) => Path.Combine(Directory.GetCurrentDirectory(), "baselines", baselineFileName); private static string GetBaselineFilePath(string baselineFileName) => Path.Combine(Directory.GetCurrentDirectory(), "baselines", baselineFileName);
} }
} }

View file

@ -3,17 +3,21 @@
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using System; using System;
using System.IO;
namespace Microsoft.DotNet.SourceBuild.SmokeTests; namespace Microsoft.DotNet.SourceBuild.SmokeTests;
internal static class Config internal static class Config
{ {
public static string DotNetDirectory { get; } = Environment.GetEnvironmentVariable("DOTNET_DIR") ?? "./.dotnet"; public static string DotNetDirectory { get; } =
Environment.GetEnvironmentVariable("DOTNET_DIR") ?? Path.Combine(Directory.GetCurrentDirectory(), ".dotnet");
public static string DotNetTarballPath { get; } = Environment.GetEnvironmentVariable(DotNetTarballPathEnv) ?? string.Empty; public static string DotNetTarballPath { get; } = Environment.GetEnvironmentVariable(DotNetTarballPathEnv) ?? string.Empty;
public const string DotNetTarballPathEnv = "DOTNET_TARBALL_PATH"; public const string DotNetTarballPathEnv = "DOTNET_TARBALL_PATH";
public static bool ExcludeOmniSharpTests { get; } = public static bool ExcludeOmniSharpTests { get; } =
bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_OMNISHARP_TESTS"), out bool excludeOmniSharpTests) ? excludeOmniSharpTests : false; bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_OMNISHARP_TESTS"), out bool excludeOmniSharpTests) ? excludeOmniSharpTests : false;
public static bool ExcludeOnlineTests { get; } = public static bool ExcludeOnlineTests { get; } =
bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_ONLINE_TESTS"), out bool excludeOnlineTests) ? excludeOnlineTests : false; bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_ONLINE_TESTS"), out bool excludeOnlineTests) ? excludeOnlineTests : false;
public static string MsftSdkTarballPath { get; } = Environment.GetEnvironmentVariable(MsftSdkTarballPathEnv) ?? string.Empty;
public const string MsftSdkTarballPathEnv = "MSFT_SDK_TARBALL_PATH";
public static string TargetRid { get; } = Environment.GetEnvironmentVariable("TARGET_RID") ?? string.Empty; public static string TargetRid { get; } = Environment.GetEnvironmentVariable("TARGET_RID") ?? string.Empty;
} }

View file

@ -12,24 +12,27 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
internal class DotNetHelper internal class DotNetHelper
{ {
private static readonly object s_lockObj = new object();
public string DotNetPath { get; } public string DotNetPath { get; }
public string DotNetInstallDirectory { get; }
public DotNetHelper(ITestOutputHelper outputHelper) public DotNetHelper(ITestOutputHelper outputHelper)
{ {
if (!Directory.Exists(Config.DotNetDirectory)) lock (s_lockObj)
{ {
if (!File.Exists(Config.DotNetTarballPath)) if (!Directory.Exists(Config.DotNetDirectory))
{ {
throw new InvalidOperationException($"Tarball path '{Config.DotNetTarballPath}' specified in {Config.DotNetTarballPathEnv} does not exist."); if (!File.Exists(Config.DotNetTarballPath))
} {
throw new InvalidOperationException($"Tarball path '{Config.DotNetTarballPath}' specified in {Config.DotNetTarballPathEnv} does not exist.");
}
Directory.CreateDirectory(Config.DotNetDirectory); Directory.CreateDirectory(Config.DotNetDirectory);
ExecuteHelper.ExecuteProcess("tar", $"xzf {Config.DotNetTarballPath} -C {Config.DotNetDirectory}", outputHelper); ExecuteHelper.ExecuteProcessValidateExitCode("tar", $"xzf {Config.DotNetTarballPath} -C {Config.DotNetDirectory}", outputHelper);
}
} }
DotNetInstallDirectory = Path.Combine(Directory.GetCurrentDirectory(), Config.DotNetDirectory); DotNetPath = Path.Combine(Config.DotNetDirectory, "dotnet");
DotNetPath = Path.Combine(DotNetInstallDirectory, "dotnet");
} }
public void ExecuteDotNetCmd(string args, ITestOutputHelper outputHelper) public void ExecuteDotNetCmd(string args, ITestOutputHelper outputHelper)

View file

@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license. // The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using System;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -12,7 +13,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
internal static class ExecuteHelper internal static class ExecuteHelper
{ {
public static (Process Process, string StdOut, string StdErr) ExecuteProcess( public static (Process Process, string StdOut, string StdErr) ExecuteProcess(
string fileName, string args, ITestOutputHelper outputHelper) string fileName, string args, ITestOutputHelper outputHelper, bool logOutput = false)
{ {
outputHelper.WriteLine($"Executing: {fileName} {args}"); outputHelper.WriteLine($"Executing: {fileName} {args}");
@ -47,17 +48,33 @@ internal static class ExecuteHelper
process.WaitForExit(); process.WaitForExit();
string output = stdOutput.ToString().Trim(); string output = stdOutput.ToString().Trim();
if (outputHelper != null && !string.IsNullOrWhiteSpace(output)) if (logOutput && !string.IsNullOrWhiteSpace(output))
{ {
outputHelper.WriteLine(output); outputHelper.WriteLine(output);
} }
string error = stdError.ToString().Trim(); string error = stdError.ToString().Trim();
if (outputHelper != null && !string.IsNullOrWhiteSpace(error)) if (logOutput && !string.IsNullOrWhiteSpace(error))
{ {
outputHelper.WriteLine(error); outputHelper.WriteLine(error);
} }
return (process, output, error); return (process, output, error);
} }
public static string ExecuteProcessValidateExitCode(string fileName, string args, ITestOutputHelper outputHelper)
{
(Process Process, string StdOut, string StdErr) result = ExecuteHelper.ExecuteProcess(fileName, args, outputHelper);
if (result.Process.ExitCode != 0)
{
ProcessStartInfo startInfo = result.Process.StartInfo;
string msg = $"Failed to execute {startInfo.FileName} {startInfo.Arguments}" +
$"{Environment.NewLine}Exit code: {result.Process.ExitCode}" +
$"{Environment.NewLine}Standard Error: {result.StdErr}";
throw new InvalidOperationException(msg);
}
return result.StdOut;
}
} }

View file

@ -0,0 +1,92 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class SdkContentTests
{
private ITestOutputHelper OutputHelper { get; }
private DotNetHelper DotNetHelper { get; }
public SdkContentTests(ITestOutputHelper outputHelper)
{
OutputHelper = outputHelper;
DotNetHelper = new DotNetHelper(outputHelper);
}
/// <Summary>
/// Verifies the file layout of the source built sdk tarball to the Microsoft build.
/// The differences are captured in baselines/MsftToSbSdkDiff.txt.
/// Version numbers that appear in paths are compared but are stripped from the baseline.
/// This makes the baseline durable between releases. This does mean however, entries
/// in the baseline may appear identical if the diff is version specific.
/// </Summary>
[Fact]
public void CompareMsftToSb()
{
if (string.IsNullOrWhiteSpace(Config.MsftSdkTarballPath))
{
OutputHelper.WriteLine($"skipping {nameof(CompareMsftToSb)} because {Config.MsftSdkTarballPathEnv} was not specified.");
return;
}
if (!File.Exists(Config.MsftSdkTarballPath))
{
throw new InvalidOperationException($"Tarball path '{Config.MsftSdkTarballPath}' specified in {Config.MsftSdkTarballPathEnv} does not exist.");
}
const string msftFileListingFileName = "msftSdkFiles.txt";
const string sbFileListingFileName = "sbSdkFiles.txt";
WriteTarballFileList(Config.MsftSdkTarballPath, msftFileListingFileName);
WriteTarballFileList(Config.DotNetTarballPath, sbFileListingFileName);
string diff = BaselineHelper.DiffFiles(msftFileListingFileName, sbFileListingFileName, OutputHelper);
diff = RemoveVersionedPaths(diff);
diff = RemoveDiffMarkers(diff);
diff = RemoveRids(diff);
BaselineHelper.Compare("MsftToSbSdk.diff", diff, OutputHelper);
}
private void WriteTarballFileList(string tarballPath, string outputFileName)
{
string fileListing = ExecuteHelper.ExecuteProcessValidateExitCode("tar", $"tf {tarballPath}", OutputHelper);
IEnumerable<string> files = fileListing.Split(Environment.NewLine).OrderBy(path => path);
File.WriteAllLines(outputFileName, files);
}
private static string RemoveDiffMarkers(string source)
{
Regex indexRegex = new("^index .*", RegexOptions.Multiline);
string result = indexRegex.Replace(source, "index ------------");
Regex diffSegmentRegex = new("^@@ .* @@", RegexOptions.Multiline);
return diffSegmentRegex.Replace(result, "@@ ------------ @@");
}
private string RemoveRids(string diff) => diff.Replace(Config.TargetRid, "bannana.rid");
private static string RemoveVersionedPaths(string source)
{
// Remove semantic version path segments
string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString());
// Regex source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
Regex semanticVersionRegex = new(
$"{pathSeparator}(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)"
+ $"(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))"
+ $"?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?{pathSeparator}");
string result = semanticVersionRegex.Replace(source, $"{Path.DirectorySeparatorChar}x.y.z{Path.DirectorySeparatorChar}");
// Remove net.x.y path segments
Regex netTfmRegex = new($"{pathSeparator}net[1-9]*.[0-9]{pathSeparator}");
return netTfmRegex.Replace(result, $"{Path.DirectorySeparatorChar}netx.y{Path.DirectorySeparatorChar}");
}
}

View file

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
using System;
using System.Linq; using System.Linq;
namespace Microsoft.DotNet.SourceBuild.SmokeTests; namespace Microsoft.DotNet.SourceBuild.SmokeTests;
@ -31,7 +30,7 @@ public class XmlDocTests
{ {
List<string> missingXmlDoc = new(); List<string> missingXmlDoc = new();
string targetingPacksDirectory = Path.Combine(DotNetHelper.DotNetInstallDirectory, "packs"); string targetingPacksDirectory = Path.Combine(Config.DotNetDirectory, "packs");
foreach (string targetingPackAssembly in Directory.EnumerateFiles(targetingPacksDirectory, "*.dll", SearchOption.AllDirectories)) foreach (string targetingPackAssembly in Directory.EnumerateFiles(targetingPacksDirectory, "*.dll", SearchOption.AllDirectories))
{ {
if (targetingPackAssembly.EndsWith("resources.dll")) if (targetingPackAssembly.EndsWith("resources.dll"))
@ -42,8 +41,8 @@ public class XmlDocTests
string xmlFile = Path.ChangeExtension(targetingPackAssembly, ".xml"); string xmlFile = Path.ChangeExtension(targetingPackAssembly, ".xml");
if (!File.Exists(xmlFile)) if (!File.Exists(xmlFile))
{ {
string pathWithoutPacksPrefix = xmlFile.Substring(targetingPacksDirectory.Length + 1); string pathWithoutPacksPrefix = xmlFile[(targetingPacksDirectory.Length + 1)..];
String[] pathParts = pathWithoutPacksPrefix.Split(Path.DirectorySeparatorChar); string[] pathParts = pathWithoutPacksPrefix.Split(Path.DirectorySeparatorChar);
string pathWithoutVersion = string.Join(Path.DirectorySeparatorChar, pathParts.Take(1).Concat(pathParts.Skip(2))); string pathWithoutVersion = string.Join(Path.DirectorySeparatorChar, pathParts.Take(1).Concat(pathParts.Skip(2)));
missingXmlDoc.Add(pathWithoutVersion); missingXmlDoc.Add(pathWithoutVersion);
} }

View file

@ -250,12 +250,14 @@ function doCommand() {
"${dotnetCmd}" publish --self-contained false /bl:"${binlogPrefix}publish-fx-dep.binlog" "${dotnetCmd}" publish --self-contained false /bl:"${binlogPrefix}publish-fx-dep.binlog"
"${dotnetCmd}" publish --self-contained true -r "$targetRid" /bl:"${binlogPrefix}publish-self-contained-${targetRid}.binlog" "${dotnetCmd}" publish --self-contained true -r "$targetRid" /bl:"${binlogPrefix}publish-self-contained-${targetRid}.binlog"
"${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-portable.binlog" "${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-portable.binlog"
"${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-R2R-portable.binlog" /p:PublishTrimmed=true /p:PublishReadyToRun=true
} }
else else
runPublishScenarios() { runPublishScenarios() {
"${dotnetCmd}" publish --self-contained false /bl:"${binlogPrefix}publish-fx-dep.binlog" "${dotnetCmd}" publish --self-contained false /bl:"${binlogPrefix}publish-fx-dep.binlog"
"${dotnetCmd}" publish --self-contained true -r "$targetRid" /bl:"${binlogPrefix}publish-self-contained-${targetRid}.binlog" "${dotnetCmd}" publish --self-contained true -r "$targetRid" /bl:"${binlogPrefix}publish-self-contained-${targetRid}.binlog"
"${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-portable.binlog" "${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-portable.binlog"
"${dotnetCmd}" publish --self-contained true -r linux-x64 /bl:"${binlogPrefix}publish-self-contained-R2R-portable.binlog" /p:PublishTrimmed=true /p:PublishReadyToRun=true
} }
fi fi
if [ "$projectOutput" == "true" ]; then if [ "$projectOutput" == "true" ]; then
@ -350,6 +352,8 @@ function runWebTests() {
doCommand C# razor "$@" new restore build run multi-rid-publish doCommand C# razor "$@" new restore build run multi-rid-publish
doCommand C# blazorwasm "$@" new restore build run publish doCommand C# blazorwasm "$@" new restore build run publish
doCommand C# blazorserver "$@" new restore build run publish doCommand C# blazorserver "$@" new restore build run publish
doCommand C# worker new restore
doCommand C# angular new restore
doCommand F# web "$@" new restore build run multi-rid-publish doCommand F# web "$@" new restore build run multi-rid-publish
doCommand F# mvc "$@" new restore build run multi-rid-publish doCommand F# mvc "$@" new restore build run multi-rid-publish

View file

@ -0,0 +1,14 @@
<Project>
<PropertyGroup>
<RepoRoot Condition="'$(RepoRoot)' == ''">$([MSBuild]::NormalizeDirectory('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))'))</RepoRoot>
<RepositoryEngineeringDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng'))</RepositoryEngineeringDir>
</PropertyGroup>
<PropertyGroup>
<!-- Skip importing NuGet Pack targets which are imported from the Microsoft.NET.Sdk targets -->
<ImportNuGetBuildTasksPackTargetsFromSdk>false</ImportNuGetBuildTasksPackTargetsFromSdk>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,9 @@
<Project>
<Target Name="_IsProjectRestoreSupported"/>
<Target Name="Restore"/>
<Target Name="Build"/>
<Target Name="Test"/>
<Target Name="Pack"/>
<Target Name="Publish"/>
</Project>

View file

@ -1,146 +0,0 @@
From 110fc28ea7c17d57bbd5ce8ed3fc4e2b0274c5b3 Mon Sep 17 00:00:00 2001
From: dseefeld <dseefeld@microsoft.com>
Date: Fri, 22 Oct 2021 22:17:37 +0000
Subject: [PATCH] Build a subset of roslyn projects
Some projects use Microsoft.NET.Sdk.WindowsDesktop sdk
which cannot be built using a boostrapped source-build
sdk, since WindowsDesktop is not supported. These cannot
be ignored using ExcludeFromSourceBuild because the project
still needs to be loaded and the sdk cannot be found.
See https://github.com/dotnet/roslyn/issues/57342
---
Roslyn.SourceBuild.slnf | 105 ++++++++++++++++++++++++++++++++++++++++
eng/SourceBuild.props | 2 +-
2 files changed, 106 insertions(+), 1 deletion(-)
create mode 100644 Roslyn.SourceBuild.slnf
diff --git a/Roslyn.SourceBuild.slnf b/Roslyn.SourceBuild.slnf
new file mode 100644
index 00000000000..e6f8eb315bf
--- /dev/null
+++ b/Roslyn.SourceBuild.slnf
@@ -0,0 +1,105 @@
+{
+ "solution": {
+ "path": "Roslyn.sln",
+ "projects": [
+ "src\\Deployment\\RoslynDeployment.csproj",
+ "src\\Compilers\\Core\\Portable\\Microsoft.CodeAnalysis.csproj",
+ "src\\Compilers\\Server\\VBCSCompiler\\VBCSCompiler.csproj",
+ "src\\Compilers\\CSharp\\csc\\csc.csproj",
+ "src\\Compilers\\CSharp\\Portable\\Microsoft.CodeAnalysis.CSharp.csproj",
+ "src\\Compilers\\VisualBasic\\Portable\\Microsoft.CodeAnalysis.VisualBasic.vbproj",
+ "src\\Workspaces\\Core\\Portable\\Microsoft.CodeAnalysis.Workspaces.csproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\BoundTreeGenerator\\CompilersBoundTreeGenerator.csproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\CSharpErrorFactsGenerator\\CSharpErrorFactsGenerator.csproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\CSharpSyntaxGenerator\\CSharpSyntaxGenerator.csproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\VisualBasicSyntaxGenerator\\VisualBasicSyntaxGenerator.vbproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\VisualBasicErrorFactsGenerator\\VisualBasicErrorFactsGenerator.vbproj",
+ "src\\Workspaces\\Core\\Desktop\\Microsoft.CodeAnalysis.Workspaces.Desktop.csproj",
+ "src\\Workspaces\\Core\\MSBuild\\Microsoft.CodeAnalysis.Workspaces.MSBuild.csproj",
+ "src\\Workspaces\\CSharp\\Portable\\Microsoft.CodeAnalysis.CSharp.Workspaces.csproj",
+ "src\\Workspaces\\VisualBasic\\Portable\\Microsoft.CodeAnalysis.VisualBasic.Workspaces.vbproj",
+ "src\\Features\\VisualBasic\\Portable\\Microsoft.CodeAnalysis.VisualBasic.Features.vbproj",
+ "src\\Features\\CSharp\\Portable\\Microsoft.CodeAnalysis.CSharp.Features.csproj",
+ "src\\Features\\Core\\Portable\\Microsoft.CodeAnalysis.Features.csproj",
+ "src\\Scripting\\VisualBasic\\Microsoft.CodeAnalysis.VisualBasic.Scripting.vbproj",
+ "src\\Scripting\\Core\\Microsoft.CodeAnalysis.Scripting.csproj",
+ "src\\Scripting\\CSharp\\Microsoft.CodeAnalysis.CSharp.Scripting.csproj",
+ "src\\ExpressionEvaluator\\Package\\ExpressionEvaluatorPackage.csproj",
+ "src\\ExpressionEvaluator\\CSharp\\Source\\ExpressionCompiler\\Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.csproj",
+ "src\\ExpressionEvaluator\\VisualBasic\\Source\\ExpressionCompiler\\Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.vbproj",
+ "src\\ExpressionEvaluator\\Core\\Source\\ExpressionCompiler\\Microsoft.CodeAnalysis.ExpressionCompiler.csproj",
+ "src\\Compilers\\Core\\AnalyzerDriver\\AnalyzerDriver.shproj",
+ "src\\ExpressionEvaluator\\VisualBasic\\Source\\ResultProvider\\BasicResultProvider.shproj",
+ "src\\ExpressionEvaluator\\VisualBasic\\Source\\ResultProvider\\NetFX20\\BasicResultProvider.NetFX20.vbproj",
+ "src\\ExpressionEvaluator\\VisualBasic\\Source\\ResultProvider\\Portable\\Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj",
+ "src\\ExpressionEvaluator\\CSharp\\Source\\ResultProvider\\CSharpResultProvider.shproj",
+ "src\\ExpressionEvaluator\\CSharp\\Source\\ResultProvider\\NetFX20\\CSharpResultProvider.NetFX20.csproj",
+ "src\\ExpressionEvaluator\\CSharp\\Source\\ResultProvider\\Portable\\Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj",
+ "src\\ExpressionEvaluator\\Core\\Source\\ResultProvider\\ResultProvider.shproj",
+ "src\\ExpressionEvaluator\\Core\\Source\\ResultProvider\\NetFX20\\ResultProvider.NetFX20.csproj",
+ "src\\ExpressionEvaluator\\Core\\Source\\ResultProvider\\Portable\\Microsoft.CodeAnalysis.ResultProvider.csproj",
+ "src\\Compilers\\VisualBasic\\vbc\\vbc.csproj",
+ "src\\Compilers\\VisualBasic\\BasicAnalyzerDriver\\BasicAnalyzerDriver.shproj",
+ "src\\Compilers\\CSharp\\CSharpAnalyzerDriver\\CSharpAnalyzerDriver.shproj",
+ "src\\Compilers\\Core\\CommandLine\\CommandLine.shproj",
+ "src\\Compilers\\Extension\\Roslyn.Compilers.Extension.csproj",
+ "src\\Dependencies\\CodeAnalysis.Debugging\\Microsoft.CodeAnalysis.Debugging.shproj",
+ "src\\Dependencies\\PooledObjects\\Microsoft.CodeAnalysis.PooledObjects.shproj",
+ "src\\Workspaces\\Remote\\Core\\Microsoft.CodeAnalysis.Remote.Workspaces.csproj",
+ "src\\Workspaces\\Remote\\ServiceHub\\Microsoft.CodeAnalysis.Remote.ServiceHub.csproj",
+ "src\\Compilers\\Core\\MSBuildTask\\Microsoft.Build.Tasks.CodeAnalysis.csproj",
+ "src\\Tools\\BuildBoss\\BuildBoss.csproj",
+ "src\\ExpressionEvaluator\\Core\\Source\\FunctionResolver\\Microsoft.CodeAnalysis.FunctionResolver.csproj",
+ "src\\CodeStyle\\Core\\Analyzers\\Microsoft.CodeAnalysis.CodeStyle.csproj",
+ "src\\CodeStyle\\Core\\CodeFixes\\Microsoft.CodeAnalysis.CodeStyle.Fixes.csproj",
+ "src\\CodeStyle\\CSharp\\Analyzers\\Microsoft.CodeAnalysis.CSharp.CodeStyle.csproj",
+ "src\\CodeStyle\\CSharp\\CodeFixes\\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.csproj",
+ "src\\CodeStyle\\VisualBasic\\Analyzers\\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.vbproj",
+ "src\\CodeStyle\\VisualBasic\\CodeFixes\\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.vbproj",
+ "src\\Tools\\AnalyzerRunner\\AnalyzerRunner.csproj",
+ "src\\Dependencies\\CodeAnalysis.Debugging\\Microsoft.CodeAnalysis.Debugging.Package.csproj",
+ "src\\Dependencies\\PooledObjects\\Microsoft.CodeAnalysis.PooledObjects.Package.csproj",
+ "src\\NuGet\\Microsoft.Net.Compilers\\Microsoft.Net.Compilers.Package.csproj",
+ "src\\NuGet\\Microsoft.NETCore.Compilers\\Microsoft.NETCore.Compilers.Package.csproj",
+ "src\\NuGet\\Microsoft.CodeAnalysis.Compilers.Package.csproj",
+ "src\\NuGet\\Microsoft.CodeAnalysis.Scripting.Package.csproj",
+ "src\\NuGet\\Microsoft.CodeAnalysis.EditorFeatures.Package.csproj",
+ "src\\NuGet\\Microsoft.CodeAnalysis.Package.csproj",
+ "src\\Setup\\DevDivVsix\\CompilersPackage\\Microsoft.CodeAnalysis.Compilers.Setup.csproj",
+ "src\\Setup\\Installer\\Installer.Package.csproj",
+ "src\\Setup\\DevDivInsertionFiles\\DevDivInsertionFiles.csproj",
+ "src\\Tools\\ExternalAccess\\FSharp\\Microsoft.CodeAnalysis.ExternalAccess.FSharp.csproj",
+ "src\\Tools\\ExternalAccess\\Razor\\Microsoft.CodeAnalysis.ExternalAccess.Razor.csproj",
+ "src\\NuGet\\Microsoft.Net.Compilers.Toolset\\Microsoft.Net.Compilers.Toolset.Package.csproj",
+ "src\\Features\\LanguageServer\\Protocol\\Microsoft.CodeAnalysis.LanguageServer.Protocol.csproj",
+ "src\\Tools\\ExternalAccess\\Debugger\\Microsoft.CodeAnalysis.ExternalAccess.Debugger.csproj",
+ "src\\Tools\\ExternalAccess\\Xamarin.Remote\\Microsoft.CodeAnalysis.ExternalAccess.Xamarin.Remote.csproj",
+ "src\\Tools\\ExternalAccess\\Apex\\Microsoft.CodeAnalysis.ExternalAccess.Apex.csproj",
+ "src\\Tools\\IdeBenchmarks\\IdeBenchmarks.csproj",
+ "src\\Tools\\Source\\CompilerGeneratorTools\\Source\\IOperationGenerator\\CompilersIOperationGenerator.csproj",
+ "src\\Features\\Lsif\\Generator\\Microsoft.CodeAnalysis.LanguageServerIndexFormat.Generator.csproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Compiler\\Core\\CompilerExtensions.shproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Workspace\\Core\\WorkspaceExtensions.shproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Compiler\\CSharp\\CSharpCompilerExtensions.shproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Workspace\\CSharp\\CSharpWorkspaceExtensions.shproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Compiler\\VisualBasic\\VisualBasicCompilerExtensions.shproj",
+ "src\\Workspaces\\SharedUtilitiesAndExtensions\\Workspace\\VisualBasic\\VisualBasicWorkspaceExtensions.shproj",
+ "src\\Analyzers\\Core\\Analyzers\\Analyzers.shproj",
+ "src\\Analyzers\\Core\\CodeFixes\\CodeFixes.shproj",
+ "src\\Analyzers\\CSharp\\Analyzers\\CSharpAnalyzers.shproj",
+ "src\\Analyzers\\CSharp\\CodeFixes\\CSharpCodeFixes.shproj",
+ "src\\Analyzers\\VisualBasic\\Analyzers\\VisualBasicAnalyzers.shproj",
+ "src\\Analyzers\\VisualBasic\\CodeFixes\\VisualBasicCodeFixes.shproj",
+ "src\\Tools\\IdeCoreBenchmarks\\IdeCoreBenchmarks.csproj",
+ "src\\Tools\\BuildValidator\\BuildValidator.csproj",
+ "src\\Tools\\BuildActionTelemetryTable\\BuildActionTelemetryTable.csproj",
+ "src\\CodeStyle\\Tools\\CodeStyleConfigFileGenerator.csproj",
+ "src\\Dependencies\\Collections\\Microsoft.CodeAnalysis.Collections.shproj",
+ "src\\Dependencies\\Collections\\Microsoft.CodeAnalysis.Collections.Package.csproj",
+ "src\\Compilers\\Core\\Rebuild\\Microsoft.CodeAnalysis.Rebuild.csproj",
+ "src\\Tools\\ExternalAccess\\OmniSharp\\Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.csproj",
+ "src\\Tools\\ExternalAccess\\OmniSharp.CSharp\\Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.CSharp.csproj",
+ "src\\Workspaces\\Remote\\ServiceHub.CoreComponents\\Microsoft.CodeAnalysis.Remote.ServiceHub.CoreComponents.csproj"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props
index 92e316a4744..9905b35467e 100644
--- a/eng/SourceBuild.props
+++ b/eng/SourceBuild.props
@@ -11,7 +11,7 @@
-->
<Target Name="ConfigureInnerBuildArg" BeforeTargets="GetSourceBuildCommandConfiguration">
<PropertyGroup>
- <InnerBuildArgs>$(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\Roslyn.sln"</InnerBuildArgs>
+ <InnerBuildArgs>$(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\Roslyn.SourceBuild.slnf"</InnerBuildArgs>
</PropertyGroup>
</Target>
--
2.31.1