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

我如何使用Jenkins和Pipeline Multibranch插件在分支机构之间拥有唯一的内部版本号

微生新霁
2023-03-14
问题内容

我们正在将Jenkins Pipeline Multibranch插件与Blue Ocean结合使用。

通过阅读,我相信将项目的内部版本号与Jenkins运行联系在一起是很常见的,因为这允许从已安装的应用程序到CI系统,再到源html" target="_blank">代码控制的更改,再到提示的问题上的可追溯性。改变。

问题在于,对于每个分支,运行号都从0开始。对于具有多个分支的项目,似乎无法保证唯一的内部版本号。


问题答案:

也许不是唯一的(全局数字)内部版本号,而是您想要尝试唯一的(全局)内部显示名?

根据“管道语法:全局变量引用”
currentBuild.displayName是可写属性。因此,您可以例如在内部版本号中添加其他信息(以使其在全局范围内唯一),并在后续的工件/应用程序构建步骤中使用该字符串(以将其合并到应用程序的版本输出中以实现所需的可追溯性),例如:

currentBuild.displayName = "${env.BRANCH_NAME}-${currentBuild.id}"

使用构建的时间表或格式为(currentBuild.timeInMillis)的开始时间作为可读日期,或使用SCM修订版也可能有用,例如,结果为“
20180119-091439-rev149923”。

也可以看看:

  • https://groups.google.com/forum/#!msg/jenkinsci-users/CDuWAYLz2zI/NLxwOku4AwAJ
  • https://support.cloudbees.com/hc/zh-CN/articles/220860347-How-to-set-build-name-in-Pipeline-job


 类似资料:
  • 问题内容: 这就是我在1到6之间生成唯一编号并从drawable文件夹中获取适当图像的方式。 我想要的是,我必须调用此方法7次,并且每次此方法应返回唯一的随机数。因此,所有已选择的数字都不会再次出现。 问题答案: 解决此类问题的常用方法是创建一个包含每个可能值的列表,并对其进行混洗(使用Collections.shuffle)。然后,每当您需要一个值时,便从列表中消费一项。这将确保您不会多次使用相

  • 问题内容: 在安装了“版本号插件”的Jenkinsfile中尝试此步骤: 并得到此错误: 在Jenkinsfile中使用此插件的正确方法是什么? 问题答案: 您需要使用它作为步骤。 看一看https://your_jenkins_url.com/pipeline- syntax/ 并检查已剪切生成器中VersionNumber步骤的所有选项。

  • 问题内容: 我在詹金斯有一份工作(称为BIGJOB);几个构建步骤是使用参数化触发器插件来触发其他作业(称为SMALLJOB)的构建,然后等待它们完成。我需要做的是从SMALLJOB上触发的构建中检索工件。 最初,我认为我可以使用Copy Artifact插件从触发的SMALLJOB的“最后构建”中检索工件。当一次仅运行一个SMALLJOB时,这确实可以可靠地工作。 但是我运行了多个BIGJOB,

  • 问题内容: 我正在子类化中添加一些功能,例如双击缩放和用于图库目的的image属性。但是为了做图像部分,我的子类必须是自己的委托并实现。 但是,当有人使用我的滚动视图子类时,他们可能还希望获得委托通知,以查看或了解您的情况。 在Swift中,我如何同时获得这两个? 问题答案: 这是此模式的Swift版本: 尽管已在Swift中禁用,但我们仍然可以使用

  • 我已经建立了多分支管道来跟踪我的回购,并自动构建和测试所有合并请求。然而,我注意到Jenkins为每个新分支创建了一个新的工作区。这是一个相当大的项目,有着繁重的构建过程和大量未跟踪的缓存文件,这些文件大多在不同版本之间保持有效——因此,如果不是新的git签出,而是重新使用以前的工作区,那么它的构建速度会快得多(也不会占用太多硬盘空间)。 如何将其配置为对不同分支重复使用相同的工作区?

  • 问题内容: 我想使用 版本号插件 来格式化BUILD_NUMBER变量。 我在下面的方式进行配置的: 图片 环境变量名称:FORMATTED_BUILD_NUMBER版本号格式字符串:$ {BUILD_NUMBER,XXX} 但是,当我使用FORMATTED_BUILD_NUMBER变量($ {FORMATTED_BUILD_NUMBER})时,它将返回未格式化的内部版本号。 所以我想看到类似的东