Skip to content

Commit 75eb7c3

Browse files
authored
Merge branch 'main' into darc-main-6a483e62-9a15-475d-a31b-7c7d1c96cb9f
2 parents 50d27a6 + 3c80286 commit 75eb7c3

File tree

10 files changed

+50
-30
lines changed

10 files changed

+50
-30
lines changed

.vsts-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ extends:
6969
centosStream9:
7070
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
7171
debian12Amd64:
72-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc14-amd64
72+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc15-amd64
7373
fedora39:
7474
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
7575
mariner20CrossArm:

.vsts-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ resources:
3232
- container: centosStream9
3333
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
3434
- container: debian12Amd64
35-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc14-amd64
35+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc15-amd64
3636
- container: fedora39
3737
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
3838
- container: ubuntu2204DebPkg

eng/Version.Details.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -546,13 +546,13 @@
546546
<Uri>https://github.com/dotnet/arcade-services</Uri>
547547
<Sha>5d2b9c17bf40f12fb843f329cd60d68105e73389</Sha>
548548
</Dependency>
549-
<Dependency Name="Microsoft.Testing.Platform" Version="1.8.0-preview.25266.2">
549+
<Dependency Name="Microsoft.Testing.Platform" Version="1.8.0-preview.25270.10">
550550
<Uri>https://github.com/microsoft/testfx</Uri>
551-
<Sha>7f47c26b682dc8b937b8cd2375fa1b976e39e6a1</Sha>
551+
<Sha>ce77f199bc3f388f9526eec9b4ae19c8b99c568a</Sha>
552552
</Dependency>
553-
<Dependency Name="MSTest" Version="3.10.0-preview.25266.2">
553+
<Dependency Name="MSTest" Version="3.10.0-preview.25270.10">
554554
<Uri>https://github.com/microsoft/testfx</Uri>
555-
<Sha>7f47c26b682dc8b937b8cd2375fa1b976e39e6a1</Sha>
555+
<Sha>ce77f199bc3f388f9526eec9b4ae19c8b99c568a</Sha>
556556
</Dependency>
557557
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="10.0.0-preview.5.25270.108">
558558
<Uri>https://github.com/dotnet/dotnet</Uri>

eng/Versions.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<UsingToolVSSDK>true</UsingToolVSSDK>
3131
<FlagNetStandard1XDependencies Condition="'$(DotNetBuildSourceOnly)' == 'true'">true</FlagNetStandard1XDependencies>
3232
<!-- This property is only used in the dotnet test integration tests. -->
33-
<MicrosoftTestingPlatformVersion>1.8.0-preview.25266.2</MicrosoftTestingPlatformVersion>
33+
<MicrosoftTestingPlatformVersion>1.8.0-preview.25270.10</MicrosoftTestingPlatformVersion>
3434
</PropertyGroup>
3535
<PropertyGroup Label="Servicing version information">
3636
<VersionFeature21>30</VersionFeature21>
@@ -322,7 +322,7 @@
322322
<AwesomeAssertionsVersion>8.0.2</AwesomeAssertionsVersion>
323323
<AwesomeAssertionsJsonVersion>8.0.0</AwesomeAssertionsJsonVersion>
324324
<MoqPackageVersion>4.18.4</MoqPackageVersion>
325-
<MSTestVersion>3.10.0-preview.25266.2</MSTestVersion>
325+
<MSTestVersion>3.10.0-preview.25270.10</MSTestVersion>
326326
<XunitCombinatorialVersion>1.3.2</XunitCombinatorialVersion>
327327
<MicrosoftDotNetInstallerWindowsSecurityTestDataPackageVersion>8.0.0-beta.23607.1</MicrosoftDotNetInstallerWindowsSecurityTestDataPackageVersion>
328328
</PropertyGroup>

eng/pipelines/templates/jobs/sdk-job-matrix.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ parameters:
3232
container: ubuntu2204DebPkg
3333
helixTargetContainer: $(helixTargetContainerPrefix)ubuntu-22.04-helix-amd64
3434
osProperties: $(linuxOsPortableProperties)
35-
# Skipping all container-based testing for now.
36-
# See: https://github.com/dotnet/sdk/issues/40935
37-
runTests: false
35+
runTests: true
3836
- categoryName: ContainerBased
3937
container: fedora39
4038
# No fedora Helix container is available, so use the ubuntu one instead.
@@ -54,9 +52,7 @@ parameters:
5452
container: debian12Amd64
5553
helixTargetContainer: $(helixTargetContainerPrefix)debian-11-helix-amd64
5654
osProperties: /p:OSName=linux /p:BuildSdkDeb=true
57-
# Skipping all container-based testing for now.
58-
# See: https://github.com/dotnet/sdk/issues/40935
59-
runTests: false
55+
runTests: true
6056
- categoryName: ContainerBased
6157
container: alpine319WithNode
6258
helixTargetContainer: $(helixTargetContainerPrefix)alpine-3.18-helix-amd64

src/Layout/redist/targets/GenerateInstallerLayout.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,14 @@
8787

8888
<!-- Copy the sdk layout into a temporary folder so that it's nested under "sdk\$(Version)\" which is
8989
necessary for the msi/pkg to install correctly and put the content under that sub path. -->
90-
<Target Name="PrepareIntermediateSdkInstallerOutput" DependsOnTargets="GenerateSdkLayout">
90+
<Target Name="PrepareIntermediateSdkInstallerOutput" DependsOnTargets="GenerateInstallerLayout">
9191
<PropertyGroup>
9292
<IntermediateSdkInstallerOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'sdk-installer', '$(Configuration)'))</IntermediateSdkInstallerOutputPath>
9393
</PropertyGroup>
9494

9595
<!-- Create "SDK Internal" layout. -->
9696
<ItemGroup>
97-
<SdkOutputFile Include="$(OutputPath)**\*" />
97+
<SdkOutputFile Include="$(InstallerOutputDirectory)**\*" />
9898
</ItemGroup>
9999

100100
<Copy SourceFiles="@(SdkOutputFile)"

test/Microsoft.NET.TestFramework/EnvironmentInfo.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ public static bool SupportsTargetFramework(string targetFramework)
101101
return false;
102102
}
103103
}
104+
else if (osId.Equals("debian", StringComparison.OrdinalIgnoreCase))
105+
{
106+
if (nugetFramework.Version < new Version(2, 0, 0, 0))
107+
{
108+
return false;
109+
}
110+
}
104111
else if (Version.TryParse(versionString, out Version? osVersion))
105112
{
106113
if (osId.Equals("fedora", StringComparison.OrdinalIgnoreCase))

test/dotnet.Tests/CommandTests/Workload/Restore/GivenDotnetWorkloadRestore.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ public GivenDotnetWorkloadRestore(ITestOutputHelper log) : base(log)
1515
[Fact]
1616
public void ProjectsThatDoNotSupportWorkloadsAreNotInspected()
1717
{
18+
if(IsRunningInContainer())
19+
{
20+
// Skipping test in a Helix container environment due to read-only DOTNET_ROOT, which causes workload restore to fail when writing workload metadata.
21+
return;
22+
}
23+
1824
var projectPath =
1925
_testAssetsManager
2026
.CopyTestAsset(DcProjAssetName)
@@ -32,6 +38,12 @@ public void ProjectsThatDoNotSupportWorkloadsAreNotInspected()
3238
[Fact]
3339
public void ProjectsThatDoNotSupportWorkloadsAndAreTransitivelyReferencedDoNotBreakTheBuild()
3440
{
41+
if(IsRunningInContainer())
42+
{
43+
// Skipping test in a Helix container environment due to read-only DOTNET_ROOT, which causes workload restore to fail when writing workload metadata.
44+
return;
45+
}
46+
3547
var projectPath =
3648
_testAssetsManager
3749
.CopyTestAsset(TransitiveReferenceNoWorkloadsAssetName)
@@ -45,4 +57,9 @@ public void ProjectsThatDoNotSupportWorkloadsAndAreTransitivelyReferencedDoNotBr
4557
// if we did try to restore the esproj in this TestAsset we would fail, so passing means we didn't!
4658
.Pass();
4759
}
60+
61+
private bool IsRunningInContainer()
62+
{
63+
return File.Exists("/.dockerenv") && (RuntimeInformation.OSDescription.Contains("Ubuntu") || RuntimeInformation.OSDescription.Contains("Debian"));
64+
}
4865
}

test/dotnet.Tests/CommandTests/Workload/Update/GivenDotnetWorkloadUpdate.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ public void GivenWorkloadUpdateAcrossFeatureBandsItUpdatesPacks(bool userLocal)
257257
};
258258
Directory.CreateDirectory(Path.GetDirectoryName(installStatePath));
259259
File.WriteAllText(installStatePath, oldInstallState.ToString());
260-
new WorkloadConfigCommand(Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"])).Execute().Should().Be(0);
260+
new WorkloadConfigCommand(Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"]), workloadResolverFactory: workloadResolverFactory).Execute().Should().Be(0);
261261
updateCommand.Execute();
262262
var newInstallState = InstallStateContents.FromPath(installStatePath);
263263
newInstallState.Manifests.Should().BeNull();
@@ -280,7 +280,7 @@ public void GivenWorkloadUpdateAcrossFeatureBandsItUpdatesPacks(bool userLocal)
280280
public void GivenWorkloadUpdateItUpdatesOutOfDatePacks()
281281
{
282282
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
283-
(_, var command, var installer, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
283+
(_, var command, var installer, _, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
284284

285285
command.Execute();
286286

@@ -405,7 +405,7 @@ public void GivenWorkloadUpdateItFindsGreatestWorkloadSetWithSpecifiedComponents
405405
public void GivenWorkloadUpdateItRollsBackOnFailedUpdate()
406406
{
407407
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android"), new WorkloadId("xamarin-android-build") };
408-
(_, var command, var installer, var workloadResolver, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, failingPack: "Xamarin.Android.Framework", installedFeatureBand: "6.0.100");
408+
(_, var command, var installer, var workloadResolver, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, failingPack: "Xamarin.Android.Framework", installedFeatureBand: "6.0.100");
409409

410410

411411
var exceptionThrown = Assert.Throws<GracefulException>(() => command.Execute());
@@ -425,7 +425,7 @@ public void GivenWorkloadUpdateItCanDownloadToOfflineCache()
425425
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
426426
var cachePath = Path.Combine(_testAssetsManager.CreateTestDirectory(identifier: "cachePath").Path, "mockCachePath");
427427
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--download-to-cache", cachePath });
428-
(_, var command, _, _, var manifestUpdater, var packageDownloader) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
428+
(_, var command, _, _, var manifestUpdater, var packageDownloader, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
429429

430430
command.Execute();
431431

@@ -446,7 +446,7 @@ public void GivenWorkloadUpdateItCanInstallFromOfflineCache()
446446
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
447447
var cachePath = "mockCachePath";
448448
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--from-cache", cachePath });
449-
(_, var command, var installer, _, _, var nugetDownloader) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
449+
(_, var command, var installer, _, _, var nugetDownloader, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
450450

451451
command.Execute();
452452

@@ -462,7 +462,7 @@ public void GivenWorkloadUpdateItPrintsDownloadUrls()
462462
{
463463
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
464464
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-download-link-only" });
465-
(_, var command, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
465+
(_, var command, _, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
466466

467467
command.Execute();
468468

@@ -476,7 +476,7 @@ public void GivenWorkloadUpdateItPrintsDownloadUrlsForNewFeatureBand()
476476
{
477477
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
478478
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-download-link-only", "--sdk-version", "7.0.100" });
479-
(_, var command, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, sdkVersion: "6.0.400");
479+
(_, var command, _, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, sdkVersion: "6.0.400");
480480

481481
command.Execute();
482482

@@ -504,7 +504,7 @@ public void GivenWorkloadUpdateWithSdkVersionItErrors()
504504
public void GivenOnlyUpdateAdManifestItSucceeds()
505505
{
506506
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--advertising-manifests-only" });
507-
(_, var command, _, _, var manifestUpdater, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
507+
(_, var command, _, _, var manifestUpdater, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
508508

509509
command.Execute();
510510
manifestUpdater.UpdateAdvertisingManifestsCallCount.Should().Be(1);
@@ -514,7 +514,7 @@ public void GivenOnlyUpdateAdManifestItSucceeds()
514514
public void GivenPrintRollbackDefinitionItIncludesAllInstalledManifests()
515515
{
516516
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-rollback" });
517-
(_, var updateCommand, _, _, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
517+
(_, var updateCommand, _, _, _, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
518518

519519

520520
updateCommand.Execute();
@@ -539,10 +539,10 @@ public void ApplyRollbackAcrossFeatureBand(string existingSdkFeatureBand, string
539539
{
540540
new(new ManifestVersionUpdate(new ManifestId("mock-manifest"), new ManifestVersion("2.0.0"), newSdkFeatureBand), null),
541541
};
542-
(var dotnetPath, var updateCommand, var packInstaller, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", identifier: existingSdkFeatureBand + newSdkFeatureBand, installedFeatureBand: existingSdkFeatureBand);
542+
(var dotnetPath, var updateCommand, var packInstaller, _, _, _, var resolverFactory) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", identifier: existingSdkFeatureBand + newSdkFeatureBand, installedFeatureBand: existingSdkFeatureBand);
543543

544544
parseResult = Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"]);
545-
WorkloadConfigCommand configCommand = new(parseResult);
545+
WorkloadConfigCommand configCommand = new(parseResult, workloadResolverFactory: resolverFactory);
546546
configCommand.Execute().Should().Be(0);
547547
updateCommand.Execute()
548548
.Should().Be(0);
@@ -571,7 +571,7 @@ public void ApplyRollbackWithMultipleManifestsAcrossFeatureBand()
571571
new(new ManifestVersionUpdate(new ManifestId("mock-manifest-2"), new ManifestVersion("2.0.0"), "6.0.300"), null),
572572
new(new ManifestVersionUpdate(new ManifestId("mock-manifest-3"), new ManifestVersion("2.0.0"), "6.0.100"), null),
573573
};
574-
(_, var updateCommand, var packInstaller, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", installedFeatureBand: "6.0.300");
574+
(_, var updateCommand, var packInstaller, _, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", installedFeatureBand: "6.0.300");
575575

576576
updateCommand.Execute()
577577
.Should().Be(0);
@@ -614,7 +614,7 @@ public void GivenInvalidVersionInRollbackFileItErrors()
614614
exception.InnerException.Message.Should().Contain(string.Format(CliCommandStrings.InvalidVersionForWorkload, "mock.workload", "6.0.0.15"));
615615
}
616616

617-
internal (string, WorkloadUpdateCommand, MockPackWorkloadInstaller, IWorkloadResolver, MockWorkloadManifestUpdater, MockNuGetPackageDownloader) GetTestInstallers(
617+
internal (string, WorkloadUpdateCommand, MockPackWorkloadInstaller, IWorkloadResolver, MockWorkloadManifestUpdater, MockNuGetPackageDownloader, IWorkloadResolverFactory) GetTestInstallers(
618618
ParseResult parseResult,
619619
[CallerMemberName] string testName = "",
620620
string failingWorkload = null,
@@ -657,7 +657,7 @@ public void GivenInvalidVersionInRollbackFileItErrors()
657657
nugetPackageDownloader: nugetDownloader,
658658
workloadManifestUpdater: manifestUpdater);
659659

660-
return (dotnetRoot, installManager, installer, workloadResolver, manifestUpdater, nugetDownloader);
660+
return (dotnetRoot, installManager, installer, workloadResolver, manifestUpdater, nugetDownloader, workloadResolverFactory);
661661
}
662662
}
663663
}

0 commit comments

Comments
 (0)