void CheckHelmToolVersion(string customHelmExecutable, HelmVersion selectedVersion)
        {
            log.Verbose($"Helm version selected: {selectedVersion}");

            StringBuilder stdout = new StringBuilder();
            var           result = SilentProcessRunner.ExecuteCommand(customHelmExecutable ?? "helm", "version --client --short", Environment.CurrentDirectory, output => stdout.Append(output), error => { });

            if (result.ExitCode != 0)
            {
                log.Warn("Unable to retrieve the Helm tool version");
            }

            var toolVersion = HelmVersionParser.ParseVersion(stdout.ToString());

            if (!toolVersion.HasValue)
            {
                log.Warn("Unable to parse the Helm tool version text: " + stdout);
            }

            if (toolVersion.Value != selectedVersion)
            {
                log.Warn($"The Helm tool version '{toolVersion.Value}' ('{stdout}') doesn't match the Helm version selected '{selectedVersion}'");
            }
        }
 public void ParseVersion_Rubbish_Null(string version)
 {
     HelmVersionParser.ParseVersion(version).Should().BeNull();
 }
 public void ParseVersion_V3WithoutPrefix_Null()
 {
     HelmVersionParser.ParseVersion("3.0.2+g19e47ee").Should().BeNull();
 }
 public void ParseVersion_V3UppercaseVersion_Null()
 {
     HelmVersionParser.ParseVersion("V3.0.2+g19e47ee").Should().BeNull();
 }
 public void ParseVersion_OtherVersion_Null()
 {
     HelmVersionParser.ParseVersion("v4.0.2+g19e47ee").Should().BeNull();
 }
 public void ParseVersion_V3Version_V3()
 {
     HelmVersionParser.ParseVersion("v3.0.2+g19e47ee").Should().Be(HelmVersion.V3);
 }
 public void ParseVersion_V2Version_V2()
 {
     HelmVersionParser.ParseVersion("Client: v2.16.1+gbbdfe5e").Should().Be(HelmVersion.V2);
 }