Ejemplo 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!!!!");
                }
            });
        }
Ejemplo n.º 2
0
        public void create_process_info_for_full_build()
        {
            var solution = new Solution
            {
                SourceFolder = "src",
                BuildCommand = "rake",
                FastBuildCommand = "rake compile",
                Directory = "directory1".ToFullPath()
            };

            var processInfo = solution.CreateBuildProcess(false);

            processInfo.WorkingDirectory.ShouldEqual("directory1".ToFullPath());
            processInfo.FileName.ShouldEqual(Runner.Rake.Path);
            processInfo.Arguments.ShouldBeEmpty();
        }
Ejemplo n.º 3
0
        public void create_process_for_fast_build_not_rake()
        {
            var solution = new Solution
            {
                SourceFolder = "src",
                BuildCommand = "msbuild",
                FastBuildCommand = "msbuild compile",
                Directory = "directory1".ToFullPath()
            };

            var processInfo = solution.CreateBuildProcess(true);

            processInfo.WorkingDirectory.ShouldEqual("directory1".ToFullPath());
            processInfo.FileName.ShouldEqual("msbuild");
            processInfo.Arguments.ShouldEqual("compile");
        }
Ejemplo n.º 4
0
        public void create_process_for_fast_build_on_unix()
        {
            var solution = new Solution
            {
                SourceFolder = "src",
                BuildCommand = "rake",
                FastBuildCommand = "rake compile",
                Directory = "directory1".ToFullPath()
            };

            var processInfo = solution.CreateBuildProcess(true);

            processInfo.WorkingDirectory.ShouldEqual("directory1".ToFullPath());
            processInfo.FileName.ShouldEqual("/bin/bash");
            processInfo.Arguments.ShouldEqual("\""+ Runner.Rake.Path + "\" compile");
        }
Ejemplo n.º 5
0
        public void create_process_info_for_full_build()
        {
            var solution = new Solution(new SolutionConfig()
            {
                SourceFolder = "src",
                BuildCommand = RippleFileSystem.RakeRunnerFile(),
                FastBuildCommand = "rake compile"
            }, "directory1");

            var processInfo = solution.CreateBuildProcess(false);

            processInfo.WorkingDirectory.ShouldEqual("directory1".ToFullPath());
            processInfo.FileName.ShouldEqual(RippleFileSystem.RakeRunnerFile());
            processInfo.Arguments.ShouldBeEmpty();
        }