Skip to content

Commit 546a6bb

Browse files
1 parent 40693e6 commit 546a6bb

File tree

18 files changed

+216
-20
lines changed

18 files changed

+216
-20
lines changed

Components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ To enable full offline source-building of the VMR, we have no other choice than
3434
- `src/fsharp`
3535
*[dotnet/fsharp@9881e3b](https://github.com/dotnet/fsharp/tree/9881e3b215a6b0ae64b83ffacac518314ca6a19d)*
3636
- `src/installer`
37-
*[dotnet/installer@e813718](https://github.com/dotnet/installer/tree/e813718a01f5b9a9bb1bbd3bd1910bbaecc89504)*
37+
*[dotnet/installer@6eadf9f](https://github.com/dotnet/installer/tree/6eadf9fb745ada735f1d5d0073a94d88645c401d)*
3838
- `src/msbuild`
3939
*[dotnet/msbuild@9cdb361](https://github.com/dotnet/msbuild/tree/9cdb3615adb4115f92b390de2f258fac5f320909)*
4040
- `src/nuget-client`

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160
<IntermediateSymbolsRootDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'Symbols'))</IntermediateSymbolsRootDir>
161161
<AssetManifestsIntermediateDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'AssetManifests'))</AssetManifestsIntermediateDir>
162162
<ArtifactsAssetsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'assets', '$(Configuration)'))</ArtifactsAssetsDir>
163+
<DotNetSdkExtractDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'extracted-dotnet-sdk'))</DotNetSdkExtractDir>
163164

164165
<PrebuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt'))</PrebuiltPackagesPath>
165166
<PreviouslyRestoredPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored'))</PreviouslyRestoredPackagesPath>

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ while [[ $# > 0 ]]; do
162162
;;
163163

164164
# Advanced settings
165-
-build-tests)
165+
-build-repo-tests)
166166
properties="$properties /p:DotNetBuildTests=true"
167167
;;
168168
-ci)

eng/extract-sdk-archive.proj

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<Project Sdk="Microsoft.Build.NoTargets">
2+
3+
<PropertyGroup>
4+
<TargetFramework>$(NetCurrent)</TargetFramework>
5+
</PropertyGroup>
6+
7+
<Target Name="ExtractSdkArchive"
8+
BeforeTargets="AfterBuild"
9+
DependsOnTargets="DetermineSourceBuiltSdkVersion"
10+
Inputs="$(SdkTarballPath)"
11+
Outputs="$(DotNetSdkExtractDir)">
12+
<MakeDir Directories="$(DotNetSdkExtractDir)" />
13+
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
14+
Command="tar -xzf $(SdkTarballPath) -C $(DotNetSdkExtractDir)" />
15+
<Unzip Condition="'$(ArchiveExtension)' == '.zip'"
16+
SourceFiles="$(SdkTarballPath)"
17+
DestinationFolder="$(DotNetSdkExtractDir)" />
18+
</Target>
19+
20+
</Project>

eng/finish-source-only.proj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<ItemGroup>
1111
<ProjectReference Include="$(TasksDir)Microsoft.DotNet.UnifiedBuild.Tasks\Microsoft.DotNet.UnifiedBuild.Tasks.csproj" />
1212
<ProjectReference Include="$(TasksDir)Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj" />
13+
<ProjectReference Include="$(RepositoryEngineeringDir)extract-sdk-archive.proj" />
1314
<ProjectReference Include="$(RepositoryEngineeringDir)merge-asset-manifests.proj" />
1415
</ItemGroup>
1516

@@ -59,13 +60,9 @@
5960
Outputs="$(SdkSymbolsTarball)">
6061
<PropertyGroup>
6162
<IntermediateSdkSymbolsLayout>$(BaseIntermediateOutputPath)SdkSymbols</IntermediateSdkSymbolsLayout>
62-
<IntermediateSdkLayout>$(BaseIntermediateOutputPath)Sdk</IntermediateSdkLayout>
6363
</PropertyGroup>
6464

65-
<MakeDir Directories="$(IntermediateSdkLayout)" />
66-
<Exec Command="tar -xzf $(SdkTarballPath) -C $(IntermediateSdkLayout)" />
67-
68-
<CreateSdkSymbolsLayout SdkLayoutPath="$(IntermediateSdkLayout)"
65+
<CreateSdkSymbolsLayout SdkLayoutPath="$(DotNetSdkExtractDir)"
6966
AllSymbolsPath="$(IntermediateSymbolsRootDir)"
7067
SdkSymbolsLayoutPath="$(IntermediateSdkSymbolsLayout)"
7168
FailOnMissingPDBs="false" />
@@ -76,7 +73,6 @@
7673
<Message Importance="High" Text="Packaged sdk symbols in '$(SdkSymbolsTarball)'" />
7774

7875
<RemoveDir Directories="$(IntermediateSdkSymbolsLayout)" />
79-
<RemoveDir Directories="$(IntermediateSdkLayout)" />
8076
</Target>
8177

8278
<!--

eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/CreateSdkSymbolsLayout.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ private IList<string> GenerateSymbolsLayout(Hashtable allPdbGuids)
8989
{
9090
// Copy matching pdb to symbols path, preserving sdk binary's hierarchy
9191
string sourcePath = (string)allPdbGuids[debugId]!;
92+
string fileRelativePath = file.Substring(SdkLayoutPath.Length);
9293
string destinationPath =
93-
file.Replace(SdkLayoutPath, SdkSymbolsLayoutPath)
94+
Path.Combine(SdkSymbolsLayoutPath, fileRelativePath)
9495
.Replace(Path.GetFileName(file), Path.GetFileName(sourcePath));
9596

9697
Directory.CreateDirectory(Path.GetDirectoryName(destinationPath)!);

prereqs/git-info/AllRepoVersions.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<emsdkOutputPackageVersion>9.0.0-preview.4.24215.3</emsdkOutputPackageVersion>
2222
<fsharpGitCommitHash>9881e3b215a6b0ae64b83ffacac518314ca6a19d</fsharpGitCommitHash>
2323
<fsharpOutputPackageVersion>8.0.400-beta.24223.1</fsharpOutputPackageVersion>
24-
<installerGitCommitHash>e813718a01f5b9a9bb1bbd3bd1910bbaecc89504</installerGitCommitHash>
24+
<installerGitCommitHash>6eadf9fb745ada735f1d5d0073a94d88645c401d</installerGitCommitHash>
2525
<installerOutputPackageVersion>9.0.100</installerOutputPackageVersion>
2626
<msbuildGitCommitHash>9cdb3615adb4115f92b390de2f258fac5f320909</msbuildGitCommitHash>
2727
<msbuildOutputPackageVersion>17.11.0-preview-24222-11</msbuildOutputPackageVersion>

prereqs/git-info/installer.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project>
33
<PropertyGroup>
4-
<GitCommitHash>e813718a01f5b9a9bb1bbd3bd1910bbaecc89504</GitCommitHash>
4+
<GitCommitHash>6eadf9fb745ada735f1d5d0073a94d88645c401d</GitCommitHash>
55
<OfficialBuildId>20240501.1</OfficialBuildId>
66
<OutputPackageVersion>9.0.100</OutputPackageVersion>
77
<PreReleaseVersionLabel></PreReleaseVersionLabel>

repo-projects/Directory.Build.props

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,17 @@
9494
<BuildArgs>$(BuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)"</BuildArgs>
9595
</PropertyGroup>
9696

97+
<PropertyGroup>
98+
<TestActions>$(FlagParameterPrefix)restore</TestActions>
99+
<TestActions>$(TestActions) $(FlagParameterPrefix)test</TestActions>
100+
101+
<TestArgs Condition="'$(UseOfficialBuildVersioning)' != 'false'">$(FlagParameterPrefix)ci</TestArgs>
102+
<TestArgs>$(TestArgs) $(FlagParameterPrefix)configuration $(Configuration)</TestArgs>
103+
<TestArgs>$(TestArgs) /bl:artifacts/log/$(Configuration)/Test.binlog</TestArgs>
104+
105+
<TestCommand>$(BuildScript) $(TestActions) $(TestArgs)</TestCommand>
106+
</PropertyGroup>
107+
97108
<PropertyGroup Condition="'$(EnableExtraDebugging)' == 'true'">
98109
<MSBuildDebugPathTargetDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'msbuild-debug'))</MSBuildDebugPathTargetDir>
99110
<RoslynDebugPathTargetDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'roslyn-debug'))</RoslynDebugPathTargetDir>

repo-projects/scenario-tests.proj

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.Build.NoTargets">
1+
<Project Sdk="Microsoft.Build.NoTargets" TreatAsLocalProperty="CleanWhileBuilding">
22

33
<ItemGroup>
44
<RepositoryReference Include="arcade" />
@@ -10,4 +10,57 @@
1010
<RepositoryReference Include="source-build-reference-packages" />
1111
</ItemGroup>
1212

13+
<PropertyGroup>
14+
<!-- The scenario-tests repo shouldn't be cleaned after building as we run tests from it. -->
15+
<CleanWhileBuilding>false</CleanWhileBuilding>
16+
17+
<ScenarioTestsArtifactsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'scenario-tests'))</ScenarioTestsArtifactsDir>
18+
<ScenarioTestsResultsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsTestResultsDir)', 'scenario-tests'))</ScenarioTestsResultsDir>
19+
<_ScenarioTestsNuGetConfig>$(ScenarioTestsArtifactsDir)NuGet.config</_ScenarioTestsNuGetConfig>
20+
<_InstallerNuGetConfig>$([MSBuild]::NormalizePath('$(SrcDir)', 'installer', 'NuGet.config'))</_InstallerNuGetConfig>
21+
</PropertyGroup>
22+
23+
<Target Name="SetupNuGetConfig"
24+
Inputs="$(_InstallerNuGetConfig)"
25+
Outputs="$(_ScenarioTestsNuGetConfig)">
26+
27+
<Copy SourceFiles="$(_InstallerNuGetConfig)"
28+
DestinationFiles="$(_ScenarioTestsNuGetConfig)" />
29+
30+
</Target>
31+
32+
<Target Name="RunScenarioTests"
33+
DependsOnTargets="SetupNuGetConfig;DetermineSourceBuiltSdkVersion">
34+
35+
<PropertyGroup>
36+
<_CurrentDateTime>$([System.DateTime]::Now.ToString("yyyy-MM-dd_HH_mm_ss"))</_CurrentDateTime>
37+
<_TestXmlOutputPath>$(ScenarioTestsResultsDir)$(_CurrentDateTime).xml</_TestXmlOutputPath>
38+
<_ScenarioTestsAdditionalArgs>--xml $(_TestXmlOutputPath) --target-rid $(TargetRid) --no-cleanup --no-traits Category=MultiTFM</_ScenarioTestsAdditionalArgs>
39+
40+
<!-- Define the test root as a sub-directory of the scenario test artifacts directory. It needs to be a sub-directory because the scenario test execution
41+
will clean that directory. Since we need the NuGet.config file that we copied in to be preserved, that's stored in the directory above the test root. -->
42+
<_TestRoot>$(ScenarioTestsArtifactsDir)artifacts/</_TestRoot>
43+
44+
<!-- It's necessary to explicitly define the path to the dotnet tool to prevent Arcade from attempting to derive it. Otherwise, it will run the dotnet
45+
install script to get a new one. We must use the locally built SDK instead in order to support non-portable RIDs for source build. -->
46+
<_DotNetTool>$(DotNetSdkExtractDir)$([System.IO.Path]::GetFileName('$(DotNetTool)'))</_DotNetTool>
47+
</PropertyGroup>
48+
49+
<MakeDir Directories="$(ScenarioTestsResultsDir)" />
50+
51+
<ItemGroup>
52+
<_ScenarioTestEnvVars Include="
53+
TestRoot=$(_TestRoot);
54+
DotNetRoot=$(DotNetSdkExtractDir);
55+
TestSdkVersion=$(SourceBuiltSdkVersion);
56+
AdditionalTestArgs=$(_ScenarioTestsAdditionalArgs);
57+
DotNetTool=$(_DotNetTool);
58+
_InitializeDotNetCli=$(DotNetSdkExtractDir)" />
59+
</ItemGroup>
60+
61+
<Exec Command="$(TestCommand)"
62+
WorkingDirectory="$(ProjectDirectory)"
63+
EnvironmentVariables="@(_ScenarioTestEnvVars)" />
64+
</Target>
65+
1366
</Project>

0 commit comments

Comments
 (0)