public IRestResponse CreatePipeline(CreatePipelinePost createPipeline, Authenticator authenticator = null) { const string resource = "admin/pipelines"; var request = CreateRestRequest(resource, Method.POST, authenticator); request.AddHeader("Accept", "application/vnd.go.cd.v6+json"); request.AddNewtonsoftJsonBody(createPipeline); var response = CreateRestClient().Post(request); return(response); }
public IEnumerable <IRestResponse> CreateBuildMonoRepoPipeline(C3poConfig config) { var createPipeline = new CreatePipelinePost() { Group = config.GetPipelineGroup(), Pipeline = new Pipeline() { name = config.GetPipelineName(), template = config.GetPipelineTemplate(), materials = new List <Material>() { new Material() { type = "git", attributes = new GitMaterialAttributes() { url = config.GetGitRemote(), branch = config.Branch, name = "git", destination = "local", filter = new Filter() { ignore = new List <string> { $"{config.GetApplication()}/**/*" } }, invert_filter = true } } }, parameters = new List <Parameter>() { new Parameter() { name = "nuget_api_key", value = config.GetNugetApiKey() }, new Parameter() { name = "application", value = config.GetApplication() }, } } }; yield return(CreatePipeline(createPipeline)); yield return(AddPipelineToEnvironment(config.Environment, config.GetPipelineName())); }
public IEnumerable <IRestResponse> CreateBuildPipelines(C3poConfig config) { foreach (var branch in config.Branches) { var createPipeline = new CreatePipelinePost() { Group = config.GetPipelineGroup(), Pipeline = new Pipeline() { name = config.GetPipelineName(branch), template = config.GetPipelineTemplate(), materials = new List <Material>() { new Material() { type = "git", attributes = new GitMaterialAttributes() { url = config.GetGitRemote(), branch = branch, destination = "local", name = "git" } } }, parameters = new List <Parameter>() { new Parameter() { name = "nuget_api_key", value = config.GetNugetApiKey() }, new Parameter() { name = "host_name", value = config.HostName }, } } }; yield return(CreatePipeline(createPipeline)); yield return(AddPipelineToEnvironment(config.Environment, config.GetPipelineName(branch))); } }
public IEnumerable <IRestResponse> CreateDeployPipeline(C3poConfig config) { var cfgPackage = FindOrCreatePackage(config.GetCfgNugetName(), config.GetCfgNugetRepo(), config.IncludeCfgPrereleases(), config); var hostPackage = FindOrCreatePackage(config.GetHostNugetName(), config.GetAppNugetRepo(), config.IncludeAppPrereleases(), config); var createPipeline = new CreatePipelinePost() { Group = config.GetPipelineGroup(), Pipeline = new Pipeline() { name = config.GetPipelineName(), template = config.GetPipelineTemplate(), materials = new List <Material>() { new Material() { type = "package", attributes = new PackageMaterialAttributes() { Ref = cfgPackage.Id } }, new Material() { type = "package", attributes = new PackageMaterialAttributes() { Ref = hostPackage.Id } } }, parameters = new List <Parameter>() { new Parameter() { name = "tenant", value = config.GetClientId() }, new Parameter() { name = "application", value = config.GetApplication() }, new Parameter() { name = "cfg_nuget", value = config.GetCfgNugetName() }, new Parameter() { name = "host_nuget", value = config.GetHostNugetName() }, new Parameter() { name = "host_name", value = config.HostName }, new Parameter() { name = "host_type", value = config.GetHostType() }, new Parameter() { name = "host_dpl_par", value = config.GetHostDeplPar() }, new Parameter() { name = "cfg_nuget_version_envvar", value = $"GO_PACKAGE_{cfgPackage.GetFullyQualifiedGoCdName()}_VERSION".AsGoCdEnvironmentString() }, new Parameter() { name = "host_nuget_version_envvar", value = $"GO_PACKAGE_{hostPackage.GetFullyQualifiedGoCdName()}_VERSION".AsGoCdEnvironmentString() }, } } }; yield return(CreatePipeline(createPipeline)); yield return(AddPipelineToEnvironment(config.Environment, config.GetPipelineName())); }