in nuget-agent/src/jetbrains/buildServer/nuget/agent/runner/pack/PackRunner.java [46:90]
public BuildProcess createBuildProcess(@NotNull final AgentRunningBuild runningBuild,
@NotNull final BuildRunnerContext context) throws RunBuildException {
final CompositeBuildProcess process = new CompositeBuildProcessImpl();
final NuGetPackParameters params = myParametersFactory.loadPackParameters(context);
final CompositeBuildProcess packRunners = new CompositeBuildProcessImpl();
final Set<File> createdPackages = new TreeSet<File>();
process.pushBuildProcess(new OutputDirectoryCleanerProcess(params, runningBuild, myCleaner));
final FilesState filesState = createFilesState(params.getOutputDirectory());
process.pushBuildProcess(
new MatchFilesBuildProcess(context, params, new MatchFilesBuildProcessBase.Callback() {
private File updateFile(@NotNull final File file) {
if (params.preferProjectFileToNuSpec()) {
for (String ext : FeedConstants.NUGET_SUPPORTED_PROJECTS) {
final File projectFile = new File(file.getParentFile(), FileUtil.getNameWithoutExtension(file) + ext);
if (projectFile.isFile()) {
runningBuild.getBuildLogger().message("Detected related project file for .nupkg file: " + projectFile);
return projectFile;
}
}
}
return file;
}
public void fileFound(@NotNull File file) throws RunBuildException {
packRunners.pushBuildProcess(myActionFactory.createPack(context, updateFile(file), params));
}
})
);
//calls NuGet to pack all selected packages
process.pushBuildProcess(packRunners);
//collect changed files
process.pushBuildProcess(collectCreatedFiles(filesState, createdPackages, params.getOutputDirectory()));
//publish packages data
process.pushBuildProcess(myActionFactory.createCreatedPackagesReport(context, createdPackages));
//publish files as artifacts if needed
if (params.publishAsArtifacts()) {
process.pushBuildProcess(publishArtifactsProcess(runningBuild, createdPackages));
}
return process;
}