管道作为代码

GoCD支持将源代码存储库中的管道配置存储在应用程序代码中,或者存储在独立的存储库中。它允许您将其从GoCD移出,以便您可以在外部修改,控制和版本化它。 GoCD服务器中的定期轮询器可以看到这样的修改,它会将这些管道配置合并到它在主配置XML文件中找到的管道中。你可以在这里看到这个功能的快速预览视频( https://www.youtube.com/watch?v=1AfBxCWRqD8&feature=youtu.be )。

需要注意的是,并非所有管道都需要配置外部(任何现有的配置,在任何现有的GoCD服务器中都是有效的)。注意到这个特性也很重要,包括GoCD能够​​监视和合并多个“配置库”中定义的外部管道。在配置库中定义的流水线也可能依赖于GoCD服务器主配置XML中定义的流水线。

此功能作为插件端点公开,因此,任何人都可以为配置存储库编写插件,以任何您选择的方式存储配置。

这是一个图像,显示了不同的设置之间的关系,例如:

管道作为代码

关于“基础架构作为代码”的简要说明:许多人似乎只能将配置签入到存储库中作为“基础架构作为代码”的一部分。 但是,通过代码配置GoCD服务器的能力已经以各种形式存在。 例如,gomatic,使用GoCD APIyagocdgocd-cli等等。这是做同样的事情的另一种方式。 在这种情况下,可以使其更具声明性,取决于插件并可能对其他人进行更多控制。

目前可用的插件用于将流水线存储为代码

管道目前可以使用JSON或YAML进行存储。

以JSON存储管道配置

设置需要允许这是:

  1. 启动服务器后,打开config XML(“Admin->Config XML”)并添加服务器的配置库以进行轮询。 这个标签应该在顶层的"<server>"标签之后添加为"<cruise>"的子标签:

       <config-repos>
         <config-repo pluginId="json.config.plugin" id="gocd-demo-config-repo-json">
           <git url="https://github.com/arvindsv/gocd-demo-config-repo-json.git" />
         </config-repo>
       </config-repos>
    

    您可以将上面提到的存储库分支到您自己的GitHub帐户或本地,以便您可以进行一些更改以查看会发生什么。任何以“.gopipeline.json”结尾的文件都会被插件拾取。JSON中可能的文档是here

  2. 给它一分钟左右的时间进行投票。 一旦发生这种情况,您应该在仪表板上看到三条新的管道,作为“演示”管道组的一部分。 您可以对JSON进行一些更改(更改组,添加阶段等),并在下次轮询时,服务器将看到这些更改并将其应用于管道配置。 请记住,如果您做出任何更改并犯了错误,您会在右下角看到一个错误(红色框)。

  3. 你甚至可以有多个存储库。 只需重复<config-repo>标记并确保没有重复的管道。

将管道配置存储在YAML中

Tomasz 宣布Yaml插件。 设置需要允许这是:

  1. A在启动服务器后,打开config XML(“Admin->Config XML”)并添加服务器的配置库以进行轮询。这个标签应该在最顶层的"<server>"标签之后添加为"<cruise>"的子标签:

       <config-repos>
         <config-repo pluginId="yaml.config.plugin" id="gocd-yaml-config-example">
           <git url="https://github.com/tomzo/gocd-yaml-config-example.git" />
         </config-repo>
       </config-repos>
    

    您可以将上面提到的存储库分支到您自己的GitHub帐户或本地,以便您可以进行一些更改以查看会发生什么。 任何以“.gocd.yaml”结尾的文件都会被插件拾取。 有关YAML文件可能的文档是here

  2. 给它一分钟左右的时间进行投票。 一旦发生这种情况,您应该在仪表板上看到三条新的管道,作为“演示”管道组的一部分。 您可以对YAML进行一些更改(更改组,添加阶段等),并在下一次轮询时,服务器将看到这些更改并将其应用于管道配置。 请记住,如果您做出任何更改并犯了错误,您会在右下角看到一个错误(红色框)。

  3. 你甚至可以有多个存储库。 只需重复<config-repo>标记并确保没有重复的管道。

results matching ""

    No results matching ""