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

带有两个git存储库的Jenkinsfile

萧明贤
2023-03-14

我正在使用Jenkins管道插件和Jenkins文件。

在一个名为vms的存储库中。git,我有Jenkinsfile和它构建的应用程序。

我有另一个名为deploy的存储库。git,其中包含我想用于在VM中部署应用程序的脚本。吉特。

目前我的Jenkinsfile就是这样的

node {
  stage 'build'
  checkout scm

我正在作业配置中定义vms.git存储库。

所以我想做的是检查这两个存储库,然后在vms中使用Jenkinsfile。git来定义构建的其余部分。我想重用部署。git脚本在其他管道中,所以我不想把Jenkinsfile放在那里。

共有2个答案

郝承悦
2023-03-14

在这个线程中可以找到另一个用于在单个管道中处理多个Git存储库的优雅解决方案。

node {
    dir('RepoOne') {
        git url: 'https://github.com/somewhere/RepoOne.git'
    }
    dir('RepoTwo') {
        git url: 'https://github.com/somewhere/RepoTwo.git'
    }

    sh('. RepoOne/build.sh')
    sh('. RepoTwo/build.sh')
}
董飞
2023-03-14

您可以使用签出功能签出多个目录,但必须指定要签出的目录。可以使用jenkins(代码段生成器bellow脚本字段)生成代码段。选择checkout,next git repository,并在其他行为中选择:checkout into sub directory。

当您有2个存储库时,您可以从您想要使用的存储库中加载脚本。例子:

node {
    // first repository
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'subdirectory1']], submoduleCfg: [], userRemoteConfigs: [[url: 'repo1.git']]])
    // second repository
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'subdirectory2']], submoduleCfg: [], userRemoteConfigs: [[url: 'repo2.git']]])
    // run first script
    load 'subdirectory1/Jenkinsfile'
    // run second script
    load 'subdirectory2/Jenkinsfile'
}
 类似资料:
  • 问题内容: 我正在将Jenkins管道插件与Jenkinsfile一起使用。 在一个名为vms.git的存储库中,我有Jenkinsfile及其构建的应用程序。 我还有一个名为deploy.git的存储库,其中包含我想用于在vms.git中部署应用程序的脚本。 目前,我的Jenkinsfile看起来像这样 并且我在作业配置中定义了vms.git存储库。 因此,我想做的是检出两个存储库,然后使用vm

  • 我尝试在本地运行此存储库 我安装了git,但当我运行此命令时: 编辑运行另一个命令时收到此错误:

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

  • 这是我的Spring Boot应用程序。当我运行main方法时,总是抛出一个空指针异常。我不知道为什么@Autowired JsonReaderService是空的。我把它定义为组件。 它是项目src文件夹中的子文件夹,因此主方法位于源文件夹之上。所以spring应该正确扫描它?? 堆栈跟踪 由:com.creditsuisse.demo.demoapplication.main(demoappl

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 我和常春藤开始了新的生活。 我有一个本地Git Repo,我把罐子存放在那里。我使用Ant进行构建。 在蚂蚁中,我可以将哪个解析器与Git和常春藤一起使用。需要什么设置才能实现此目的。