当前位置: 首页 > 知识库问答 >
问题:

如何从一个存储库管理多个Jenkins管道?

皇甫建木
2023-03-14

目前,我们使用JJB编译Jenkins作业(大部分已经是管道),以便配置大约700个作业,但JJB2似乎无法很好地扩展以构建管道,我正在寻找一种方法将其从等式中删除。

我主要希望能够将所有这些管道存储在一个集中的存储库中。

请注意,在我们的用例中,将CI配置(jenkins文件)保存在每个存储库和分支中是不可能的,我们需要将所有管道保存在一个“jenkins jobs.git”repo中。

共有3个答案

鲜于璞瑜
2023-03-14

正如@Juh_所说,您可以使用jenkins共享库,下面是完整的步骤,假设我们有三个分支:

  • 主人
  • 发展
  • 舞台

我们想创建一个Jenkins文件,这样我们只能在一个地方进行更改。您只需要创建一个新分支ex:common。此分支必须具有此结构。我们现在感兴趣的是在vars目录中添加一个新的groovy文件,例如:common.groovy。在这里,我们可以放置您希望在所有分支中使用的通用Jenkins文件

以下是一个示例:

def call() {
 node {
        stage("Install Stage from common file") {
             if (env.BRANCH_NAME.equals('master')){
                   echo "npm install from common files master branch"
             }
             else if(env.BRANCH_NAME.equals('develop')){
                   echo "npm install from common files develop branch"
             }
        }
        stage("Test") {
            echo "npm test from common files"
        }
    }
}

您必须包装代码调用函数,以便在其他分支中使用。现在我们已经完成了公共分支中的工作,我们需要在我们的分支中使用它。转到您希望使用此pipline的任何分支,例如:master并创建Jenkinsfile,然后将这一行代码放入:

common()

这将调用您之前在公共分支中创建的公共函数,并将执行管道。

姜建德
2023-03-14

我认为这就是詹金斯共享库的目的

我没有自己开发这样的库,但我正在使用一些。基本上:

  • 在共享库中开发jenkins管道的“共享代码”
    • 它可以包含整个管道(步骤序列)

蒙化
2023-03-14

据我所知,这还不可能,但正在进行中。见:https://issues.jenkins-ci.org/browse/JENKINS-43749

 类似资料:
  • 我有一个Jenkins管道,我需要在其中登录到两个不同的docker存储库。我知道如何使用以下命令对一个存储库进行身份验证 但不知道如何为超过1次的回购做这件事?

  • 我有一个管道(jenkins)工作,它使用多个存储库。 存储库是这样签出的: 现在,我想在对任何存储库进行提交时触发该作业。如何配置?

  • 问题内容: 我想使用两个Git存储库构建一个项目。其中一个包含源代码,而另一个包含构建和部署脚本。 我的问题是我需要一个用于构建和部署项目不同部分(大型项目,多个存储库,相同的构建和部署脚本)的存储库,但是Jenkins似乎无法处理此问题(或者我不知道)不知道/找不到方法)。 问题答案: 更新 现在不建议使用多个SCM插件,因此用户应该迁移到Pipeline插件。 旧答案 是的,詹金斯可以处理。只

  • 所以我正在尝试为几个不同的项目制作一个多分支管道。 这些是基本要求: < li >每个客户有三项工作开发、准备和生产 < li >对于每个作业,从每个回购中提取相应的分支,并构建一个bot < li >如果作业正在使用的存储库中发生任何变化,则触发该环境的构建 所以这些要求非常简单。 但是还有第四个要求。我想弄清楚的是,我是否可以有一个回购,它可以保存我所有的Jenkins文件,然后构建另一个回购

  • 在Jenkins(Freestyle)中创建新项目时,可以在“源代码管理”下选择多个Git存储库。 我想创建一个构建后操作来将来自两个存储库的文件归档为工件。我在每个存储库上单击了“高级...”,以便为每个存储库命名,但当我检查工作区时,我仍然只能在那里看到最新的存储库。 关于如何在工作区上看到这两个回购,有什么提示吗?

  • 将现有存储库数据库迁移到其他数据库可能包括迁移到同一服务器中的其他数据库,或迁移到不同操作系统上的数据库(例如,从 Windows 到 macOS)。 如果你想迁移你的存储库数据库,请按照下列步骤操作: 通过运行命令,或使用通知区域或菜单栏中的图标来停止 Navicat Monitor 服务。 在你的数据库管理工具中,将当前的存储库数据库(所有表的结构和数据)复制到新的存储库数据库。 启动 Nav