Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing the FileContainer issue #86

Closed
wants to merge 12 commits into from
Closed
Show file tree
Hide file tree
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
46 changes: 32 additions & 14 deletions src/CoveragePublisher/CoverageProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,22 @@ public CoverageProcessor(ICoveragePublisher publisher, ITelemetryDataCollector t
_telemetry = telemetry;
}

public bool IsContainsNativeCoverage(PublisherConfiguration config)
{
foreach (var summaryFile in config.CoverageFiles)
{
if (!(summaryFile.EndsWith(Constants.CoverageConstants.CoverageBufferFileExtension) || // .coveragebuffer
summaryFile.EndsWith(Constants.CoverageConstants.CoverageFileExtension) || // .coverage
summaryFile.EndsWith(Constants.CoverageConstants.CoverageBFileExtension) || //.covb
summaryFile.EndsWith(Constants.CoverageConstants.CoverageJsonFileExtension) || //.cjson
summaryFile.EndsWith(Constants.CoverageConstants.CoverageXFileExtension)))
{
return true;
}
}
return false;
}

public async Task ParseAndPublishCoverage(PublisherConfiguration config, CancellationToken token, Parser parser)
{
if (_publisher != null)
Expand All @@ -45,6 +61,8 @@ public async Task ParseAndPublishCoverage(PublisherConfiguration config, Cancell
// Upload native coverage files to TCM
TraceLogger.Debug("Publishing native coverage files is supported.");

TraceLogger.Debug("Vinayak - Trying to get Debug1");

await _publisher.PublishNativeCoverageFiles(config.CoverageFiles, token);

var fileCoverage = parser.GetFileCoverageInfos();
Expand All @@ -67,6 +85,7 @@ public async Task ParseAndPublishCoverage(PublisherConfiguration config, Cancell
{
using (new SimpleTimer("CoverageProcesser", "PublishCoverageSummary", _telemetry))
{
TraceLogger.Debug("Vinayak - Trying to get Debug2");
await _publisher.PublishCoverageSummary(summary, token);
}
}
Expand All @@ -82,35 +101,34 @@ public async Task ParseAndPublishCoverage(PublisherConfiguration config, Cancell
await _publisher.PublishFileCoverage(fileCoverage, token);
}
}

//Feature Flag for PublishHTMLReport; To be cleaned up post PCCRV2 upgrade

if (config.GenerateHTMLReport)
{
TraceLogger.Debug("Vinayak - ConfigHTML");
if (!Directory.Exists(config.ReportDirectory))
{
TraceLogger.Debug("Vinayak - Warning html supported");
TraceLogger.Warning(Resources.NoReportDirectoryGenerated);
}

else
{
foreach (string nativeCoverageFile in config.CoverageFiles)
using (new SimpleTimer("CoverageProcesser", "PublishHTMLReport", _telemetry))
{
if (!(nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageBufferFileExtension) || // .coveragebuffer
nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageFileExtension) || // .coverage
nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageBFileExtension) || //.covb
nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageJsonFileExtension) || //.cjson
nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageXFileExtension))) // .covx
if(IsContainsNativeCoverage(config))
{
using (new SimpleTimer("CoverageProcesser", "PublishHTMLReport", _telemetry))
{
await _publisher.PublishHTMLReport(config.ReportDirectory, token);
}
TraceLogger.Debug("Vinayak - HTML supported");
await _publisher.PublishHTMLReport(config.ReportDirectory, token);
}

else{
TraceLogger.Debug("Vinayak - HTML not supported");
}
}
}

}
TraceLogger.Debug("Vinayak - HTML END");
//Feature Flag for PublishHTMLReport; To be cleaned up post PCCRV2 upgrade

}
// Only catastrophic failures should trickle down to these catch blocks
catch (ParsingException ex)
Expand Down
20 changes: 16 additions & 4 deletions src/CoveragePublisher/Parsers/Parser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using System.IO;
using Microsoft.Azure.Pipelines.CoveragePublisher.Model;
using Microsoft.Azure.Pipelines.CoveragePublisher.Utils;
using Microsoft.Azure.Pipelines.CoveragePublisher.Publishers.DefaultPublisher;

namespace Microsoft.Azure.Pipelines.CoveragePublisher.Parsers
{
Expand Down Expand Up @@ -83,11 +84,22 @@ protected virtual void GenerateHTMLReport(ICoverageParserTool tool)
// Copy the files
foreach (var summaryFile in _configuration.CoverageFiles)
{
var summaryFileName = Path.GetFileName(summaryFile);
var destinationSummaryFile = Path.Combine(summaryFilesSubDir, summaryFileName);
if (!(summaryFile.EndsWith(Constants.CoverageConstants.CoverageBufferFileExtension) || // .coveragebuffer
summaryFile.EndsWith(Constants.CoverageConstants.CoverageFileExtension) || // .coverage
summaryFile.EndsWith(Constants.CoverageConstants.CoverageBFileExtension) || //.covb
summaryFile.EndsWith(Constants.CoverageConstants.CoverageJsonFileExtension) || //.cjson
summaryFile.EndsWith(Constants.CoverageConstants.CoverageXFileExtension)))
{
var summaryFileName = Path.GetFileName(summaryFile);
var destinationSummaryFile = Path.Combine(summaryFilesSubDir, summaryFileName);

TraceLogger.Debug("Parser.GenerateHTMLReport: Copying summary file " + summaryFile);
File.Copy(summaryFile, destinationSummaryFile, true);
TraceLogger.Debug("Parser.GenerateHTMLReport: Copying summary file " + summaryFile);
File.Copy(summaryFile, destinationSummaryFile, true);
}

else{
TraceLogger.Debug("Parser.GenerateHTMLReport: Skipping copying of coverage input file " + summaryFile);
}
}
}
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public async Task PublishFileCoverage(IList<FileCoverageInfo> coverageInfos, Can
{
var fileContent = JsonUtility.ToString(coverageInfos);
File.WriteAllText(jsonFile, fileContent);

TraceLogger.Debug("Vinayak - PublishFileCoverage");
_executionContext.TelemetryDataCollector.AddOrUpdate("FileCoverageLength", fileContent.Length);

Dictionary<string, string> metaData = new Dictionary<string, string>();
Expand Down Expand Up @@ -160,6 +160,7 @@ public async Task PublishFileCoverage(IList<FileCoverageInfo> coverageInfos, Can

public async Task PublishHTMLReport(string reportDirectory, CancellationToken token)
{
TraceLogger.Debug("Vinayak - Trying to get PublishHTMLREport");
await _htmlReportPublisher.PublishHTMLReportAsync(reportDirectory, token);
}

Expand All @@ -180,6 +181,7 @@ public async Task PublishNativeCoverageFiles(IList<string> nativeCoverageFiles,
using (new SimpleTimer("AzurePipelinesPublisher", "UploadNativeCoverageFiles", _executionContext.TelemetryDataCollector))
{
int uploadedFileCount = 0;
TraceLogger.Debug("Vinayak - Trying to get Debug3");
foreach (string nativeCoverageFile in nativeCoverageFiles)
{
if (!(nativeCoverageFile.EndsWith(Constants.CoverageConstants.CoverageBufferFileExtension) ||
Expand All @@ -190,7 +192,7 @@ public async Task PublishNativeCoverageFiles(IList<string> nativeCoverageFiles,
{
continue;
}

TraceLogger.Debug("Vinayak - Trying to get Debug4");
TestLogType testLogType = GetTestLogType(nativeCoverageFile);
await _logStoreHelper.UploadTestBuildLogAsync(_executionContext.ProjectId, _executionContext.BuildId, testLogType, nativeCoverageFile, metaData, null, true, cancellationToken);
uploadedFileCount++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public async Task PublishHTMLReportAsync(string reportDirectory, CancellationTok

RenameIndexHtmExtensionIfRequired(reportDirectory);
uploadDirectories.Add(new Tuple<string, string>(reportDirectory, GetCoverageDirectoryName(buildId)));

TraceLogger.Debug("Vinayak - HTMLReportAsync");
TraceLogger.Info(Resources.PublishingCodeCoverageReport);

await this.PublishCodeCoverageFilesAsync(uploadDirectories, File.Exists(Path.Combine(reportDirectory, Constants.DefaultIndexFile)), cancellationToken);
Expand All @@ -70,13 +70,16 @@ private async Task PublishCodeCoverageFilesAsync(List<Tuple<string, string>> dir
};

// Upload to file container service
TraceLogger.Debug("Vinayak - Upload to file Container service");
var fileContainerHelper = _serviceFactory.GetFileContainerService(_clientFactory, _executionContext);
await fileContainerHelper.CopyToContainerAsync(tuple, cancellationToken);
string fileContainerFullPath = string.Format($"#/{_executionContext.ContainerId}/{tuple.Item2}");

// Associate with build artifact
TraceLogger.Debug("Vinayak - Build Artifact");
var buildHelper = _serviceFactory.GetBuildService(_clientFactory, _executionContext);
await buildHelper.AssociateArtifact(_executionContext.BuildId, tuple.Item2, ArtifactResourceTypes.Container, fileContainerFullPath, artifactProperties, cancellationToken);
TraceLogger.Debug("Vinayak - Associate Artifact");
TraceLogger.Info(string.Format(Resources.PublishedCodeCoverageArtifact, tuple.Item1, tuple.Item2));
});

Expand Down
Loading