private void CheckAndRunJobWithBuild() { try { var job = new DeploymentJobServiceClient().GetNext(); if (job == null) { return; } _job = job; Log("Starting", JobStatus.Inprogress); var sourceDirectory = Path.Combine(Path.GetPathRoot(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System)), "mktaxi"); Log("Source Folder = " + sourceDirectory); var taxiRepo = new TaxiRepository(sourceDirectory, bool.Parse(ConfigurationManager.AppSettings["IsGitHubSourceControl"])); if (_job.Server.Role == EnvironmentRole.BuildServer) { taxiRepo.FetchSource(_job.Revision.Commit, str => Log(str)); Build(sourceDirectory); } //build server and deploy if (_job.ServerSide || _job.Database) { var packagesDirectory = Path.Combine(sourceDirectory, "Deployment\\Server\\Package\\"); if (_job.Server.Role != EnvironmentRole.BuildServer) { packagesDirectory = ConfigurationManager.AppSettings["DeployFolder"]; } var packagesLocation = CleanAndUnZip(packagesDirectory); DeployTaxiHail(packagesLocation); } Log("Job Complete", JobStatus.Success); } catch (Exception e) { _logger.Error(e.Message, e); Log(e.Message, JobStatus.Error); } }
private void CheckAndRunJobWithBuild() { try { var job = new DeploymentJobServiceClient().GetNext(); if (job == null) { return; } _job = job; try { _logger.Debug("Begin work on " + job.Company.CompanyName); UpdateJob("Starting at " + DateTime.Now, JobStatus.Inprogress); var sourceDirectoryConfig = ConfigurationManager.AppSettings["CheckoutDir"]; var sourceDirectory = string.IsNullOrEmpty(sourceDirectoryConfig) ? Path.Combine(Path.GetTempPath(), "TaxiHailSourceNewService") : sourceDirectoryConfig; if (!Directory.Exists(sourceDirectory)) { Directory.CreateDirectory(sourceDirectory); UpdateJob("Directory " + sourceDirectory + " did not exist, creating..."); _isNewFolder = true; } var releaseiOSAdHocDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "bin", "iPhone", "AdHoc"); if (Directory.Exists(releaseiOSAdHocDir)) { Directory.Delete(releaseiOSAdHocDir, true); } var releaseiOSAdHocObjDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "obj", "iPhone", "AdHoc"); if (Directory.Exists(releaseiOSAdHocObjDir)) { Directory.Delete(releaseiOSAdHocObjDir, true); } var releaseiOSAppStoreDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "bin", "iPhone", "AppStore"); if (Directory.Exists(releaseiOSAppStoreDir)) { Directory.Delete(releaseiOSAppStoreDir, true); } var releaseiOSAppStoreObjDir = Path.Combine(sourceDirectory, "Src", "Mobile", "iOS", "obj", "iPhone", "AppStore"); if (Directory.Exists(releaseiOSAppStoreObjDir)) { Directory.Delete(releaseiOSAppStoreObjDir, true); } var releaseAndroidDir = Path.Combine(sourceDirectory, "Src", "Mobile", "Android", "bin", "Release"); if (Directory.Exists(releaseAndroidDir)) { Directory.Delete(releaseAndroidDir, true); } var releaseBlackBerryApkDir = Path.Combine(sourceDirectory, "Src", "Mobile", "TaxiHail.BlackBerry", "bin", "Release"); if (Directory.Exists(releaseBlackBerryApkDir)) { Directory.Delete(releaseBlackBerryApkDir, true); } var releaseBlackBerryBarDir = Path.Combine(sourceDirectory, "Src", "BBTools", "Outputs"); if (Directory.Exists(releaseBlackBerryBarDir)) { Directory.Delete(releaseBlackBerryBarDir, true); } var releaseCallboxAndroidDir = Path.Combine(sourceDirectory, "Src", "Mobile", "MK.Callbox.Mobile.Client.Android", "bin", "Release"); if (Directory.Exists(releaseCallboxAndroidDir)) { Directory.Delete(releaseCallboxAndroidDir, true); } DownloadAndInstallProfileIfNecessary(); var isGitHub = bool.Parse(ConfigurationManager.AppSettings["IsGitHubSourceControl"]); var taxiRepo = new TaxiRepository(sourceDirectory, isGitHub); UpdateJob("FetchSource"); taxiRepo.FetchSource(_job.Revision.Commit, str => UpdateJob(str)); UpdateJob("Customize"); Customize(sourceDirectory, _job); UpdateJob("Build"); BuildMobile(sourceDirectory, releaseiOSAdHocDir, releaseiOSAppStoreDir); UpdateJob("Deploy"); var deploymentInfo = Deploy(_job.Company, releaseiOSAdHocDir, releaseiOSAppStoreDir, releaseAndroidDir, releaseCallboxAndroidDir, releaseBlackBerryApkDir, releaseBlackBerryBarDir); CreateNewVersionInCustomerPortal(deploymentInfo); UpdateJob(string.Format("Done (ended at {0})", DateTime.Now), JobStatus.Success); _logger.Debug("Deployment finished without error"); } catch (Exception e) { _logger.Error(e.Message); UpdateJob(string.Format("{0} (ended at {1})", e.Message, DateTime.Now), JobStatus.Error); } } catch (Exception e) { _logger.Error(e.Message); } }