static void Main(string[] args) { // Setup _defaultLogger = LogManager.GetLogger("Default"); EnsureWorkingAreaExists(); // Parse command line options CommandLineOptions options = new CommandLineOptions(); Parser.Default.ParseArguments(args, options); Job currentJob = JobHelper.GetJob(options.JobId, _defaultLogger); if (currentJob == null) { ExitProgramWithError("Job not found"); } // Intialise deployment context. DeploymentContext deploymentContext = DeploymentContextFactory.CreateContextForJob(currentJob); _statusUpdater = new DeploymentStatusUpdater(deploymentContext); // Checkout code from source control _statusUpdater.UpdateStatus(DeploymentStatuses.VscCheckout); GitProvider gitProvider = new GitProvider(deploymentContext); bool checkoutSuccess = gitProvider.Checkout(); if (!checkoutSuccess) { ExitProgramWithError("Git checkout was unsuccessful.", currentJob); } // Load deployment conifguration bool configLoadSuccess = ConfigLoader.LoadConfigurationIntoContext(deploymentContext); if (!configLoadSuccess) { ExitProgramWithError("Could not load configuration", currentJob); } // Run Tasks bool taskRunResult = DeploymentTaskRunner.RunTasks(deploymentContext, _statusUpdater); if (taskRunResult) { _statusUpdater.Dispose(); JobHelper.MarkJobAsComplete(currentJob); } else { ExitProgramWithError("Task did not complete.", currentJob); } }
static void ExitProgramWithError(string error, Job job = null) { if (job != null) { JobHelper.MarkJobAsFailed(job, error); } if (_statusUpdater != null) { _statusUpdater.Dispose(); } _defaultLogger.Fatal(error); Environment.Exit(1); }
static void Main(string[] args) { // Setup _defaultLogger = LogManager.GetLogger("Default"); EnsureWorkingAreaExists(); // Parse command line options CommandLineOptions options = new CommandLineOptions(); Parser.Default.ParseArguments(args, options); Job currentJob = JobHelper.GetJob(options.JobId, _defaultLogger); if (currentJob == null) ExitProgramWithError("Job not found"); // Intialise deployment context. DeploymentContext deploymentContext = DeploymentContextFactory.CreateContextForJob(currentJob); _statusUpdater = new DeploymentStatusUpdater(deploymentContext); // Checkout code from source control _statusUpdater.UpdateStatus(DeploymentStatuses.VscCheckout); GitProvider gitProvider = new GitProvider(deploymentContext); bool checkoutSuccess = gitProvider.Checkout(); if (!checkoutSuccess) ExitProgramWithError("Git checkout was unsuccessful.", currentJob); // Load deployment conifguration bool configLoadSuccess = ConfigLoader.LoadConfigurationIntoContext(deploymentContext); if (!configLoadSuccess) ExitProgramWithError("Could not load configuration", currentJob); // Run Tasks bool taskRunResult = DeploymentTaskRunner.RunTasks(deploymentContext, _statusUpdater); if (taskRunResult) { _statusUpdater.Dispose(); JobHelper.MarkJobAsComplete(currentJob); } else { ExitProgramWithError("Task did not complete.", currentJob); } }