Esempio n. 1
0
        public void BuildSolution(Solution solution)
        {
            var stopwatch = new Stopwatch();
            stopwatch.Start();

            if (solution.GetAllNugetDependencies().Any())
            {
                _logger.Trace("Pausing to try to let the file system quiet down...");
                Thread.Sleep(1000);
            }

            var process = solution.CreateBuildProcess(_requirements.Fast);
            _logger.Trace("Trying to run {0} {1} in directory {2}", process.FileName, process.Arguments, process.WorkingDirectory);

            ProcessReturn processReturn;
            _logger.Indent(() =>
            {
                processReturn = _runner.Run(process, new TimeSpan(0, 5, 0), _logCallback);

                _fileSystem.WriteLogFile(solution.Name + ".log", processReturn.OutputText);

                stopwatch.Stop();
                _logger.Trace("Completed in {0} milliseconds", stopwatch.ElapsedMilliseconds);

                if (processReturn.ExitCode != 0)
                {
                    _logger.Trace("Opening the log file for " + solution.Name);
                    new OpenLogCommand().Execute(new OpenLogInput()
                    {
                        Solution = solution.Name
                    });
                    throw new ApplicationException("Command line execution failed!!!!");
                }
            });
        }