【问题标题】:Jenkins: How do I check out two repository URLs into the same workspace without deleting the first one?Jenkins:如何在不删除第一个的情况下将两个存储库 URL 签出到同一个工作区?
【发布时间】:2016-12-20 04:08:28
【问题描述】:

我们的项目结构已经拆分。一方面是 /plugins 文件夹,其中包含所有主要的插件项目。另一方面,我们有一个 /tests 文件夹,其中包含所有片段项目,这些片段项目是其相应主插件项目的单元测试。

Jenkins 让我可以查看多个存储库,甚至可以查看工作区中的同一个文件夹。

问题是第一个结帐在第二个URL签出时被删除了。

/plugins 放入工作空间目录,然后工作空间目录被“清理”:

Cleaning local Directory .

然后第二个目录 /tests 被检出。

当然,我希望两个文件夹的内容都放在同一个工作区目录中。我该怎么做?

【问题讨论】:

  • 您使用什么工具(套件)进行构建?
  • 您使用的是哪个存储库?
  • @danowar - Toby 的回答是否足以满足您的需求?如果是这样,请将其标记为这样。如果没有,请更新问题并提供更多详细信息。

标签: eclipse jenkins


【解决方案1】:

假设您使用 Subversion 签出您的项目,您需要将“本地模块目录”指定为您签出的每个路径的默认值以外的其他内容。

例如;

如果你有 svn://myrepo/myproject/plugins 和 svn://myrepo/myproject/tests,配置会是这样的;

模块: 存储库 URL:svn://myrepo/myproject/plugins 本地模块目录(可选):插件 存储库 URL:svn://myrepo/myproject/tests 本地模块目录(可选):测试

然后这会通知 Jenkins 它有两条路径可以结帐并进入不同的位置。

如果您尝试将项目签出到另一个工作副本的子文件夹中,您可能必须在父目录上使用 svn:externals。

【讨论】:

    【解决方案2】:

    在新的 Jenkins 2.0 管道(以前称为工作流插件)中,这样做的方式不同:

    • 主存储库
    • 其他附加存储库

    这里我特指Multibranch Pipeline 2.9版。

    主存储库

    这是包含您的 Jenkinsfile 的存储库。

    在您的管道项目的配置屏幕中,输入您的存储库名称等。

    不要使用其他行为> 签出到子目录。这会将您的Jenkinsfile 放在子目录where Jenkins cannot find it 中。

    Jenkinsfile 中,使用dir() 签出子目录中的主存储库:

    dir('subDir') {
        checkout scm
    }
    

    其他存储库

    如果您想查看更多存储库,请使用 Pipeline Syntax 生成器自动生成 Groovy 代码 sn-p。

    在您的管道项目的配置屏幕中:

    1. 选择管道语法。在样本中 步骤下拉菜单,选择checkout: General SCM
    2. 选择您的 SCM 系统,例如 Git。填写常用信息 关于您的存储库或软件仓库。
    3. 请注意,在多分支管道中,环境变量 env.BRANCH_NAME 包含主存储库的分支名称。
    4. 其他行为下拉菜单中,选择 签出到子目录
    5. 单击生成 Groovy。 Jenkins 将显示 Groovy 代码 sn-p 对应于您指定的 SCM 结帐。
    6. 将此代码复制到您的管道脚本或Jenkinsfile

    【讨论】:

      猜你喜欢
      • 2013-01-28
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2023-04-05
      • 2021-01-27
      • 2012-09-17
      • 2010-09-19
      • 1970-01-01
      相关资源
      最近更新 更多