Jenkins 通用连续输送管道

Jenkins 通用连续输送管道,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,我创建了一个Jenkins管道模板,并将脚本(用groovy编写)放在内联编辑器中。它构建应用程序并在触发作业时部署到环境中 GitHub中的XML文档可以打开和关闭各种管道功能。例如,如果某个环境是“受控”的,则在部署到该环境之前,需要获得批准的变更单。每个应用程序可以有多个配置。每个应用程序都使用相同的管道脚本 现在这个脚本非常复杂,有3000行代码。我想把它分成一些小的例程,模块化,可扩展。有人能给我一些重构脚本的建议吗?我在这里发布了创建管道模板的解决方案:Jenkins管道模板 其思想

我创建了一个Jenkins管道模板,并将脚本(用groovy编写)放在内联编辑器中。它构建应用程序并在触发作业时部署到环境中

GitHub中的XML文档可以打开和关闭各种管道功能。例如,如果某个环境是“受控”的,则在部署到该环境之前,需要获得批准的变更单。每个应用程序可以有多个配置。每个应用程序都使用相同的管道脚本


现在这个脚本非常复杂,有3000行代码。我想把它分成一些小的例程,模块化,可扩展。有人能给我一些重构脚本的建议吗?

我在这里发布了创建管道模板的解决方案:Jenkins管道模板


其思想是使用提供管道模板的全局变量创建一个。然后,只需从共享库调用一个方法,就可以在Jenkins文件中使用它。

您考虑过吗?如果您发现它不符合您的需要,请解释原因,因为这样做可能会澄清您的目标。谢谢Hugues的回复。对于所有管道作业,我只使用一个通用管道模板。我的想法是从管道模板加载Jenkinsfile(位于GitHub中)。然后从全局管道库(位于GitHub中)加载与(构建和部署)阶段相关的例程/步骤。所有应用程序是否都可以使用同一个Jenkins文件(使其成为全局文件),而不是特定于应用程序?Jenkins文件和共享库可以放在同一个存储库中吗?我不建议将Jenkins文件和共享库放在同一个存储库中。大多数情况下,您希望使用应用程序代码对Jenkins文件进行版本控制。而共享库应该单独进行版本控制。