通用连续交付管道
问题描述:
我创建了一个Jenkins管道模板,并将脚本(用groovy编写)放入内联编辑器中。它构建应用程序并在触发作业时部署到环境中。通用连续交付管道
位于GitHub中的XML文档打开和关闭各种管道功能。例如,如果环境是“受控”的,那么在部署到环境之前需要批准的变更单。每个应用程序可以有多个配置。每个应用程序使用相同的管道脚本。
现在脚本很复杂,而且有3000行代码。我想将其分解为小例程,模块化和可扩展性。任何人都可以提出我的一些想法重构脚本
答
我已经发布我的解决方案,在这里创建一个管道模板:詹金斯管道模板
的想法是创建一个Shared Library与提供管道模板全局变量。通过简单地调用共享库中的方法,可以在Jenkins文件中使用它。
您是否考虑过[共享库](https://jenkins.io/doc/book/pipeline/shared-libraries/)?如果你发现它不适合你的需要,请解释为什么,因为这样做可能会澄清你的所作所为。 –
谢谢Hugues的回复。我对所有管道作业只使用一个通用管道模板。我的想法是从管道模板加载Jenkinsfile(位于GitHub中)。然后从全局管道库(位于GitHub中)加载与(构建和部署)阶段有关的例程/步骤。所有的应用程序能否使用相同的Jenkinsfile(使其成为全局的)而不是特定于应用程序的? Jenkinsfile和共享库可以放在同一个存储库中吗? – Jay
我不会推荐将Jenkinsfile和共享库放在同一个存储库中。大多数情况下,您希望Jenkinsfile使用应用程序代码进行版本控制。而共享库应该分开版本化。 – Philip