当前位置: 首页 > 面试题库 >

如何从一个本地git repo中获取多个Jenkins构建版本以进行工作?

高豪
2023-03-14
问题内容

我有一个很大的GitHub存储库,其中包含几个可独立构建的位。如果我为Jenkins的每个任务配置一个(或两个)工作,最终我将不得不多次提取千兆字节的数据(每个工作的仓库都是一个克隆)。

这会占用磁盘空间和带宽。

我想做的是拥有“ Refresh local
repo”作业,该作业一次克隆github,然后配置每个作业以从该回购中克隆自己并进行构建。然后,通过将子作业设置为依赖的构建,我可以运行“刷新本地存储库”,让它从GitHub中提取所有最新的东西,然后运行每个构建。

到目前为止,我已经可以使用“刷新本地存储库”了-它成功克隆了,如果我进入工作区,我会看到它具有HEAD的origin / master提交。

问题是其他工作-这些工作似乎没有更新。这是我配置其中之一的方法

Git
 Repository URL file:////Users/malcolmbox/.jenkins/jobs/Refresh Local repo/workspace
 Branches to build  master

它没有更新为最新的提交,而是停留了几天。

我怎样才能拉出尖端并做正确的事情?

要澄清:… /刷新本地仓库/工作区已提交6b20268389064590147d5c73d2b6aceb6ba5fe70提交28/3

在运行构建(大概执行git clone /
pull步骤)后,从属构建被检出到提交为26/3的79a25992cc192376522bcb634ee0f7eb3033fc7e,因此相隔了几天。


问题答案:

如果打开作业配置并单击git SCM配置的“高级”按钮,则会看到一个位置,用于指定“克隆期间要使用的参考存储库的路径(可选)”。

如果您具有存储库的本地克隆,则将路径添加到参考回购字段。

然后,Git将使用本地克隆并共享磁盘上的大多数git对象,并仅从本地克隆中删除本地克隆中缺少的内容,从而实现快速克隆并节省了磁盘空间。

还是这正是您配置工作的方式,并且没有选择最新的提交?如果是这样,请提供更多详细信息。考虑发布您的作业配置。



 类似资料:
  • 请给一些建议来解决这个问题?

  • (该章需加入更多内容。。。原稿写的太简单了)我们同时也加入了一个发行版本, 将会送到客户端: Example 7.14. 多项目构建 - 发行文件 api/build.gradle task dist(type: Zip) { dependsOn spiJar from 'src/dist' into('libs') { from spiJar.archiv

  • 问题内容: 我有一个简单的python脚本,它导入了我编写的其他各种模块(依此类推)。由于我的环境,我的PYTHONPATH很长。我也在使用Python 2.4。 我需要做的是以某种方式打包我的脚本和所有不属于标准python的依赖项,以便可以将单个文件通过电子邮件发送到要执行该文件的另一个系统。我知道python的目标版本是相同的,但是在Windows上的linux上。否则,我只会使用py2ex

  • 我有一个jenkins作业,它在工作区中生成属性文件。我想知道是否可以从工作区读取属性文件,然后在同一作业的下一个构建步骤中将其作为程序的参数传递?? 我尝试通过groovy脚本echo env读取该文件。WORKSPACE 64 String fileContents=新文件(${env.WORKSPACE})/key\u generate.properties”).getText('UTF-8

  • 问题内容: 当我从构建页面单击“重建”时,jenkins将重建并运行新作业-具有新jenkins内部编号的新作业。 如何获得执行重建的作业的内部版本号? 我不是在谈论以前的内部版本号。 对构建10说我,我进入构建5,然后单击重建。我如何 是 从管道内的内部版本号(5)像我可以用? 问题答案: 我假设您正在使用Groovy Pipeline,并且已经知道全局变量(请参阅全局变量参考)。 该变量具有一

  • 问题内容: 是否可以(如果可以),如何分别获取每个并行步骤的日志输出? 即: 现在是否可以获取每个projectBranches [_i]的日志? 问题答案: 您可以使用Jenkins REST API获取节点:job / test / 1 / api / json?depth = 2 结果应包含以下内容: 因此,对于您的情况,您对分支名称为StepAtomNode的子级(给定名称为0-9)感兴趣