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

詹金斯管道:如何与Git一起使用它们,尤其是与Git的多次回购一起使用?

公羊俭
2023-03-14

情况...

我要说的是,除了Jenkins之外的解决方案并不是一个真正的选择,因为我们公司已经使用Jenkins有一段时间了,我们真的不想设置其他的解决方案。

共有1个答案

裴俊雅
2023-03-14

我认为Pipeline中的git支持一点也不缺乏。至少现在不会了。而且管道极其强大。当然不是最小的。也许您正在查看旧文档。声明式管道可能仍然被认为有点不成熟,但仍然非常强大和简单,通常是我的默认选择,除非我需要变得更疯狂。

您为git构建步骤发布的文档只是Checkout SCM步骤的包装,可以用于非常简单的git操作。这肯定不是在Jenkins中使用git的可用选项的范围。

特别是,我有一个多分支管道工作,负责监视git回购。当检测到更改时,repo被下拉,然后我将另一个repo的稀疏签出下拉到子目录中,然后将另一个完整repo下拉到另一个目录中。我运行一些构建脚本。压缩一些东西,部署Zip文件,然后运行一些远程ssh进程来处理远程服务器上的包。

dir("package/infra") {
    deleteDir()  //start with a clean directory

    checkout([$class: 'GitSCM', 
      branches: [[name: '*/master']],
      extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: "my/path/here"]]]],
      userRemoteConfigs: [[credentialsId: 'asdf-fdsa-werw5-asjksadf-wlfjsdf', url: 'git@github.com:ABC/DEF.git']]
    ])

}

您还可以进行浅层克隆,以及各种复杂的git行为。

对库进行第二次构建可能会更好,并将构建的工件存储在artifactory中,或者只是将它们存档在Jenkins中。然后从artifactory将工件带进来,或者使用复制工件插件。把他们从另一份工作中带来。但每种情况都不一样。

 类似资料:
  • 问题内容: 我开始使用jenkins,现在尝试将其配置为使用websvn进行差异和文件视图。我看到一个帖子,说我必须配置multyviews。但我不完全了解它的含义以及在配置后如何使用它。 问题答案: 解决方案是使用jenkins的websvn2插件,该插件支持带参数的url

  • 我们可以使用GitHub个人令牌进行git推送吗?

  • 问题内容: 我将使用IntelliJ Community Edition的Git版本控制来创建我打算开发的程序的分支。我正在努力使自己适应其功能,并且遇到了障碍。 我遵循网页 http://wiki.jetbrains.net/intellij/Using_Git_Locally上的说明,尽管我按其要求进行操作,但是当我到达Image5时,在Default(默认)下找到了一个空列表。 我认为这可能

  • 问题内容: 我正在创建一个示例詹金斯管道,这是代码。 该管道失败,并显示以下错误日志 但是,当我从此url执行以下示例时,它将成功执行并打印else部分。 我可以看到的唯一区别是在工作示例中没有,但在我的情况下有。 这是怎么了,有人可以建议吗? 问题答案: 您的第一个尝试是使用声明性管道,第二个可以使用的是脚本化管道。您需要将步骤括在步骤声明中,并且不能用作声明式的顶层步骤,因此需要将其包装在步骤

  • 问题内容: 考虑以下代码: 该程序的输出为: 当然,当我从外壳运行时,它可以按预期工作: 互联网告诉我,由于管道行为不是跨平台的事实,在生产Java的Java工厂工作的才华横溢的人无法保证管道能正常工作。 我怎样才能做到这一点? 我不会使用Java构造而不是grepand 来进行所有解析sed,因为如果我想更改语言,将被迫用该语言重新编写解析代码,这完全是不行的。 调用Shell命令时,如何使Ja

  • 问题内容: 这是我要执行的Jenkins管道。我正在关注本教程: 但是作业失败,并显示以下消息。 有人可以帮我解决为什么失败了。 问题答案: 您需要在阶段声明之后添加一个step块。