Example #1
0
 /// <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);
     }
 }
Example #2
0
        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();
        }