Пример #1
0
        private void BuildAndRun(bool runExecutable)
        {
            var citrusDirectory = CalcCitrusDirectory();

            Environment.CurrentDirectory = Path.Combine(citrusDirectory, "Orange");
            ClearObjFolder(citrusDirectory);
            OnBuildStatusChange?.Invoke("Building");
            if (AreRequirementsMet() && Build(SolutionPath ?? DefaultSolutionPath))
            {
                ClearObjFolder(citrusDirectory);
                if (runExecutable)
                {
                    RunExecutable();
                }
                OnBuildSuccess?.Invoke();
            }
            else
            {
                if (!areFailedDetailsSet)
                {
                    SetFailedBuildStatus("Send this text to our developers.");
                }
                OnBuildFail?.Invoke();
            }
        }
Пример #2
0
 private void SetFailedBuildStatus(string details = null)
 {
     if (string.IsNullOrEmpty(details))
     {
         details = "Send this text to our developers.";
     }
     OnBuildStatusChange?.Invoke($"Build failed. {details}");
     OnBuildFail?.Invoke();
 }
Пример #3
0
        public Task Start(bool runExecutable)
        {
            var task = new Task(() => {
                try {
                    SynchronizeAllProjects();
                    BuildAndRun(runExecutable);
                } catch (Exception e) {
                    Console.WriteLine(e.Message);
                    OnBuildFail?.Invoke();
                }
            });

            task.Start();
            return(task);
        }