/// <summary> /// Execute the task. /// </summary> /// <returns><c>true</c> if the task executed successfully; otherwise, <c>false</c>.</returns> public override bool Execute() { Serilog.Log.Logger = new LoggerConfiguration() .Enrich.WithProperty(MSBuildProperties.Subcategory, nameof(Codecov)) .WriteTo.MSBuild(this) .CreateLogger(); try { var reportFiles = ReportFiles.Select(e => new ReportFile(e.ItemSpec, File.ReadAllText(e.ItemSpec))); var coverage = new Coverage(reportFiles); var envVars = new EnviornmentVariables(this); var continuousIntegrationServer = ContinuousIntegrationServerFactory.Create(envVars); envVars.LoadEnviornmentVariables(continuousIntegrationServer); var versionControlSystem = VersionControlSystemFactory.Create(this, new Terminal.Terminal()); var sourceCode = new SourceCode(versionControlSystem); var yaml = new Yaml.Yaml(sourceCode); var repositories = RepositoryFactory.Create(versionControlSystem, continuousIntegrationServer); var url = new Url.Url(new Host(this, envVars), new Route(), new Query(this, repositories, continuousIntegrationServer, yaml, envVars)); var report = new Report(this, envVars, sourceCode, coverage); var upload = new Uploads(url, report, Features); var uploadFacade = new UploadFacade(continuousIntegrationServer, versionControlSystem, yaml, coverage, envVars, url, upload); uploadFacade.LogContinuousIntegrationAndVersionControlSystem(); ReportUrl = uploadFacade.UploadReports(); return(true); } catch (Exception exception) { Log.LogError("The Codecov MSBuild task failed."); Log.LogErrorFromException(exception, showStackTrace: true); return(false); } }
private static void Uploader() { var coverage = new Coverage.Tool.Coverage(_commandLineOptions); var envVars = new EnviornmentVariables(_commandLineOptions); var continuousIntegrationServer = ContinuousIntegrationServerFactory.Create(envVars); envVars.LoadEnviornmentVariables(continuousIntegrationServer); var terminals = TerminalFactory.Create(); var versionControlSystem = VersionControlSystemFactory.Create(_commandLineOptions, terminals[TerminalName.Generic]); var sourceCode = new SourceCode(versionControlSystem); var yaml = new Yaml.Yaml(sourceCode); var repositories = RepositoryFactory.Create(versionControlSystem, continuousIntegrationServer); var url = new Url.Url(new Host(_commandLineOptions, envVars), new Route(), new Query(_commandLineOptions, repositories, continuousIntegrationServer, yaml, envVars)); var report = new Report(_commandLineOptions, envVars, sourceCode, coverage); var upload = new Uploads(url, report, _commandLineOptions.Features); var uploadFacade = new UploadFacade(continuousIntegrationServer, versionControlSystem, yaml, coverage, envVars, url, upload); uploadFacade.LogContinuousIntegrationAndVersionControlSystem(); if (_commandLineOptions.Dump) { Log.Warning("Skipping upload and dumping contents."); Log.Information("url: {GetUrl}", url.GetUrl); Log.Information(report.Reporter); return; } uploadFacade.UploadReports(); }
public void Create_ShouldNotDetectTeamcityWhenTeamcityVersionIsNull() { var ev = new Mock <IEnviornmentVariables>(); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <TeamCity>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldNotDetectJenkinsWhenJenkinsUrlIsNull() { var ev = new Mock <IEnviornmentVariables>(); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <Jenkins>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldNotDetectGitHubActionWhenGitHubActionsAndGitHubActionIsNull() { var ev = new Mock <IEnviornmentVariables>(); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <GitHubAction>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldNotDetectAzurePipelinesWhenTfBuildIsNull() { var ev = new Mock <IEnviornmentVariables>(); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <AzurePipelines>().And.BeOfType <ContinuousIntegrationServer>(); }
public UploadFacade(CommandLineOptions commandLineOptions) { CommandLineCommandLineOptions = commandLineOptions; var envVars = new EnviornmentVariables(commandLineOptions); ContinuousIntegrationServer = ContinuousIntegrationServerFactory.Create(envVars); envVars.LoadEnviornmentVariables(ContinuousIntegrationServer); EnviornmentVariables = envVars; }
public void Create_ShouldNotDetectAzurePipelinesWhenTfBuildIsFalse() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("TF_BUILD")).Returns("False"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <AzurePipelines>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldNotDetectAppVeyorWhenCiIsNull() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR")).Returns("True"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <AppVeyor>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldDetectTeamcityWhenTeamcityVersionIsNotNull() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("TEAMCITY_VERSION")).Returns("1.0.0"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().BeOfType <TeamCity>(); }
public void Create_ShouldDetectJenkinsWhenJenkinsUrlIsNotNull() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("JENKINS_URL")).Returns("https://example.org"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().BeOfType <Jenkins>(); }
public void Create_ShouldNotDetectGitHubActionWhenGitHubActionsIsFalse() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("GITHUB_ACTIONS")).Returns("False"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <GitHubAction>().And.BeOfType <ContinuousIntegrationServer>(); }
public void Create_ShouldDetectGitHubActionWhenGitHubActionIsNotNull() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("GITHUB_ACTION")).Returns("Some-kind-of-value"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().BeOfType <GitHubAction>(); }
public void Create_ShouldNotDetectTravisWhenTravisIsFalse() { var ev = new Mock <IEnviornmentVariables>(); ev.Setup(s => s.GetEnvironmentVariable("TRAVIS")).Returns("False"); ev.Setup(s => s.GetEnvironmentVariable("CI")).Returns("True"); var ci = ContinuousIntegrationServerFactory.Create(ev.Object); ci.Should().NotBeOfType <Travis>().And.BeOfType <ContinuousIntegrationServer>(); }