Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }
Пример #3
0
        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)));
            }
        }
Пример #4
0
        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()));
        }