public override DeployActionUnitResponse ExecuteDeploy( ProjectState projectState, ActionExecution sourceActionExecution, List <DeployActionUnit> currentExecutionDeployActions) { try { var createRepositoryFolderDependency = GetDependencyFromSameSource <CreateRepositoriesFolder>(sourceActionExecution, currentExecutionDeployActions); var createGithubRepositoryDependency = GetDependencyFromSameSource <CreateGithubRepository>(sourceActionExecution, currentExecutionDeployActions); var pathParameter = DeployResponseParametersDefinitions.Project.CreateRepositoriesFolder.RepositoryPath; var repositoriesPath = createRepositoryFolderDependency.ResponseParameters[pathParameter] as string; var repositorySvnUrl = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.SvnUrl; var repositoryNameParameter = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.Name; var repositoryName = createGithubRepositoryDependency.ResponseParameters[repositoryNameParameter] as string; var path = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName); var repositoryUrl = createGithubRepositoryDependency.ResponseParameters[repositorySvnUrl] as string; var settingGit = GetSetting(projectState, SettingsDefinitions.GitExePath); GitClientService.Initialize(settingGit); var repositoryPath = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName); if (FileService.ExistsFolder(repositoryPath)) { FileService.DeleteFolder(repositoryPath); } GitClientService.CloneRepository(repositoriesPath, repositoryUrl); return(new DeployActionUnitResponse() .Ok(GetParameters(path))); } catch (Exception ex) { return(new DeployActionUnitResponse() .Error(ex)); } }
public override DeployActionUnitResponse ExecuteCheck( ProjectState projectState, ActionExecution sourceActionExecution, List <DeployActionUnit> currentExecutionDeployActions) { try { var cloneRepositoryFolderDependency = GetDependencyFromSameSource <CloneGitRepository>(sourceActionExecution, currentExecutionDeployActions); var pathParameter = Definitions.DeployResponseParametersDefinitions.MicroServices.CloneGitRepository.Path; var repositoryPath = cloneRepositoryFolderDependency.ResponseParameters[pathParameter] as string; var settingGit = GetSetting(projectState, Definitions.SettingsDefinitions.GitExePath); GitClientService.Initialize(settingGit); var existsFolder = FileService.ExistsFolder(repositoryPath); if (!existsFolder) { return(new DeployActionUnitResponse() .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)); } var existsRepoInPath = GitClientService.ExistsRepositoryInFolder(repositoryPath); if (!existsRepoInPath) { return(new DeployActionUnitResponse() .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)); } var currentBranch = GitClientService.GetCurrentBranchRepository(repositoryPath); if (currentBranch != BranchDefinitions.Master) { return(new DeployActionUnitResponse() .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)); } return(new DeployActionUnitResponse() .Ok(GetParameters(currentBranch), DeployActionUnitResponse.DeployActionResponseType.AlreadyCompletedJob)); } catch (Exception ex) { return(new DeployActionUnitResponse() .Error(ex)); } }
public override DeployActionUnitResponse ExecuteCheck( ProjectState projectState, ActionExecution sourceActionExecution, List <DeployActionUnit> currentExecutionDeployActions) { try { var createRepositoryFolderDependency = GetDependency <CreateRepositoriesFolder>(sourceActionExecution, currentExecutionDeployActions); var createGithubRepositoryDependency = GetDependencyFromSameSource <CreateGithubRepository>(sourceActionExecution, currentExecutionDeployActions); var pathParameter = DeployResponseParametersDefinitions.Project.CreateRepositoriesFolder.RepositoryPath; var repositoriesPath = createRepositoryFolderDependency.ResponseParameters[pathParameter] as string; var repositoryNameParameter = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.Name; var repositoryName = createGithubRepositoryDependency.ResponseParameters[repositoryNameParameter] as string; var path = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName); var settingGit = GetSetting(projectState, SettingsDefinitions.GitExePath); GitClientService.Initialize(settingGit); var existsFolder = FileService.ExistsFolder(path); if (!existsFolder) { return(new DeployActionUnitResponse() .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)); } var existsRepoInPath = GitClientService.ExistsRepositoryInFolder(path); if (existsRepoInPath) { return(new DeployActionUnitResponse() .Ok(GetParameters(path), DeployActionUnitResponse.DeployActionResponseType.AlreadyCompletedJob)); } return(new DeployActionUnitResponse() .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)); } catch (Exception ex) { return(new DeployActionUnitResponse() .Error(ex)); } }