Skip to content

Commit c0d82cb

Browse files
committed
Minor improvement to not start dotnet process when it is known to fail
1 parent 8e64880 commit c0d82cb

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -611,8 +611,6 @@ public void TestLinuxBuildlessExtractionNoDotnet()
611611
{
612612
actions.RunProcess["dotnet --info"] = 1;
613613
actions.RunProcessOut["dotnet --info"] = "";
614-
actions.RunProcess["dotnet --list-sdks"] = 1;
615-
actions.RunProcessOut["dotnet --list-sdks"] = "";
616614
actions.RunProcess[@"chmod u+x scratch/.dotnet/dotnet-install.sh"] = 0;
617615
actions.RunProcess[@"scratch/.dotnet/dotnet-install.sh --channel release --version 8.0.101 --install-dir scratch/.dotnet"] = 0;
618616
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone --dotnet scratch/.dotnet"] = 0;
@@ -626,7 +624,7 @@ public void TestLinuxBuildlessExtractionNoDotnet()
626624
actions.CreateDirectories.Add(@"scratch/.dotnet");
627625

628626
var autobuilder = CreateAutoBuilder(false, buildless: "true");
629-
TestAutobuilderScript(autobuilder, 0, 5);
627+
TestAutobuilderScript(autobuilder, 0, 4);
630628
}
631629

632630
private void SkipVsWhere()

csharp/autobuilder/Semmle.Autobuild.CSharp/DotNetRule.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ private static BuildScript DownloadDotNet(IAutobuilder<AutobuildOptionsShared> b
172172

173173
const string latestDotNetSdkVersion = "8.0.101";
174174
builder.Log(Severity.Info, $"No .NET Core SDK found. Attempting to install version {latestDotNetSdkVersion}.");
175-
return DownloadDotNetVersion(builder, installDir, latestDotNetSdkVersion);
175+
return DownloadDotNetVersion(builder, installDir, latestDotNetSdkVersion, checkInstalledSdkVersion: false);
176176
});
177177

178178
}
@@ -186,14 +186,20 @@ private static BuildScript DownloadDotNet(IAutobuilder<AutobuildOptionsShared> b
186186
///
187187
/// See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script.
188188
/// </summary>
189-
private static BuildScript DownloadDotNetVersion(IAutobuilder<AutobuildOptionsShared> builder, string path, string version)
189+
private static BuildScript DownloadDotNetVersion(IAutobuilder<AutobuildOptionsShared> builder, string path, string version, bool checkInstalledSdkVersion = true)
190190
{
191-
return BuildScript.Bind(GetInstalledSdksScript(builder.Actions), (sdks, sdksRet) =>
191+
var firstScript = checkInstalledSdkVersion
192+
? GetInstalledSdksScript(builder.Actions)
193+
: BuildScript.Success;
194+
195+
return BuildScript.Bind(firstScript, (sdks, sdksRet) =>
192196
{
193-
if (sdksRet == 0 && sdks.Count == 1 && sdks[0].StartsWith(version + " ", StringComparison.Ordinal))
197+
if (checkInstalledSdkVersion && sdksRet == 0 && sdks.Count == 1 && sdks[0].StartsWith(version + " ", StringComparison.Ordinal))
198+
{
194199
// The requested SDK is already installed (and no other SDKs are installed), so
195200
// no need to reinstall
196201
return BuildScript.Failure;
202+
}
197203

198204
builder.Log(Severity.Info, "Attempting to download .NET Core {0}", version);
199205

0 commit comments

Comments
 (0)