Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,65 +21,8 @@ protected override async Task<bool> Execute (Context context)
var dotnetPreviewVersion = context.Properties.GetRequiredValue (KnownProperties.MicrosoftDotnetSdkInternalPackageVersion);
var dotnetTestRuntimeVersion = Configurables.Defaults.DotNetTestRuntimeVersion;

// Delete any custom Microsoft.Android packs that may have been installed by test runs. Other ref/runtime packs will be ignored.
var packsPath = Path.Combine (dotnetPath, "packs");
if (Directory.Exists (packsPath)) {
foreach (var packToRemove in Directory.EnumerateDirectories (packsPath)) {
var info = new DirectoryInfo (packToRemove);
if (info.Name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) {
Log.StatusLine ($"Removing Android pack: {packToRemove}");
Utilities.DeleteDirectory (packToRemove);
}
}
}

// Delete Workload manifests, such as sdk-manifests/6.0.100/Microsoft.NET.Sdk.Android
var sdkManifestsPath = Path.Combine (dotnetPath, "sdk-manifests");
if (Directory.Exists (sdkManifestsPath)) {
foreach (var versionBand in Directory.EnumerateDirectories (sdkManifestsPath)) {
foreach (var workloadManifestDirectory in Directory.EnumerateDirectories (versionBand)) {
var info = new DirectoryInfo (workloadManifestDirectory);
if (info.Name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) {
Log.StatusLine ($"Removing Android manifest directory: {workloadManifestDirectory}");
Utilities.DeleteDirectory (workloadManifestDirectory);
}
}
}
}

// Delete any unnecessary SDKs if they exist.
var sdkPath = Path.Combine (dotnetPath, "sdk");
if (Directory.Exists (sdkPath)) {
foreach (var sdkToRemove in Directory.EnumerateDirectories (sdkPath).Where (s => new DirectoryInfo (s).Name != dotnetPreviewVersion)) {
Log.StatusLine ($"Removing out of date SDK: {sdkToRemove}");
Utilities.DeleteDirectory (sdkToRemove);
}
}

// Delete Android template-packs
var templatePacksPath = Path.Combine (dotnetPath, "template-packs");
if (Directory.Exists (templatePacksPath)) {
foreach (var templateToRemove in Directory.EnumerateFiles (templatePacksPath)) {
var name = Path.GetFileName (templateToRemove);
if (name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) {
Log.StatusLine ($"Removing Android template: {templateToRemove}");
Utilities.DeleteFile (templateToRemove);
}
}
}

// Delete the metadata folder, which contains old workload data
var metadataPath = Path.Combine (dotnetPath, "metadata");
if (Directory.Exists (metadataPath)) {
Utilities.DeleteDirectory (metadataPath);
}

if (File.Exists (dotnetTool)) {
if (!TestDotNetSdk (dotnetTool)) {
Log.WarningLine ($"Attempt to run `dotnet --version` failed, reinstalling the SDK.");
Utilities.DeleteDirectory (dotnetPath);
}
}
// Always delete the ~/android-toolchain/dotnet/ directory
Utilities.DeleteDirectory (dotnetPath);

if (!await InstallDotNetAsync (context, dotnetPath, dotnetPreviewVersion)) {
Log.ErrorLine ($"Installation of dotnet SDK {dotnetPreviewVersion} failed.");
Expand Down