如何自动增加詹金斯构建号?

2024-01-25

如何自动增加 jenkins 内部版本号或使用 shell 脚本? 现在我正在使用配置选项执行相同的操作,并手动增加。我想自动完成。


您所要求的(即在多个作业之间保持内部版本号相同)很简单不可能的在詹金斯。这是通过设计完成的(正如 Jenkins 创建者本人所指出的):"[JENKINS] assumes that the build number is unique and monotonic." http://jenkins-ci.361315.n4.nabble.com/Set-custom-build-number-td379762.html。您可以将其更改为更高的值,但将其更改为相同的数字将彻底破坏 Jenkins,因此是不可能的。

Build run数字就是:arun number.
应该是有顺序的。
It is not任何方式的版本号。

然而,有多种方法可以将版本控制信息添加到构建历史记录中。

描述 Setter 插件 https://wiki.jenkins-ci.org/display/JENKINS/Description+Setter+Plugin
这就是我用的。它不会改变内部版本号,而是描述,这是自动完成的。此外,由于这是描述,因此也可以随时手动修改。

This is what it looks like:
Description Setter build number
Note that builds #50 and #51 actually have the same version 1.3.0.394376.
In that version string, the 1.3.0 is the current release number, as determined by the project properties, while the 394376 is actually an SVN revision number, obtained from $SVN_REVISION_1 build variable. So every time there is a new commit in SVN, I get a new revision number. But if there are no commits and the job is rebuilt for whatever reason (like in #50 and #51), my version number remains same, as there was no code change.

我配置的方式是:

  • 下载描述 Setter 插件 https://wiki.jenkins-ci.org/display/JENKINS/Description+Setter+Plugin
  • 在你的某个地方构建步骤,输出您的版本*
  • 我只是有:
    echo Version is: ${internalVersionNumberFromWherever}.${SVN_REVISION_1}
  • 下一步设置构建后操作 with 设置构建描述
  • Setup 正则表达式从控制台提取版本号:Version is: (.*)
  • 将其他所有内容留空,以及 RegEx 中提取的内容(.*)将用作描述。
  • 或者,您可以进一步设置描述文本为Build - \1. Where \1是对第一组的引用(.*)来自正则表达式。
  • 任何时候你都可以manually通过从构建历史记录中选择构建运行并单击来更改运行的描述“编辑描述”右侧的链接(前提是用户已"Update"已配置权限)。

* 请注意,如果您的构建在输出版本文本的步骤之前失败,则描述设置器插件将无法获取它。如果您总是想查看版本,那么第一步就是设置版本号的显示。

Build Name Setter plugin https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin
This plugin will actually change the build number
enter image description here
However remember the limitation that each build number has to be unique.
Best way to ensure that is to add ${BUILD_NUMBER} to whatever arbitrary number that you want (like in the image above). This way you can have builds numbers like 50.123 and then 50.124 where 50 is your version while 123 and 124 are sequential build run numbers, and Jenkins makes sure of keeping the ${BUILD_NUMBER} unique.

最后,还有版本号插件 https://wiki.jenkins-ci.org/display/JENKINS/Version+Number+Plugin我没有亲自尝试过,但它可能对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何自动增加詹金斯构建号? 的相关文章

  • Jenkins Git 参数插件无法获取标签

    詹金斯版本 1 593 Git 参数插件 0 4 0 GIT 客户端插件 1 16 1 我使用私有 git 存储库 可以通过 ssh 访问 我的构建是参数化的 git参数是TAG TO BUILD 要构建的分支是refs tags TAG
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • Jenkins 安排代理节点可用性

    我们有许多机器希望用作 Jenkins 的代理节点 但仅限于特定的时间间隔 即不在工作时间 是否可以配置一个代理节点作为特定时间范围内构建的代理 例如 周一至周五晚上 10 点至凌晨 5 点 周六和周日全天 In the 从机配置面板 选择
  • 使用 Jenkins Git 插件中的 SSH 密钥在构建期间运行 Git 命令

    我们在 Jenkins 上的构建作业作为发布构建的一部分运行一些 git 命令 例如 git push 和 git pull 因此需要一种在构建期间从 shell 运行经过身份验证的 git 命令的方法 我们的詹金斯奴隶不持有任何凭证 因为
  • 如何将参数从jenkins传递到selenium

    我正在使用詹金斯和硒 我需要将测试 url 从 jenkins 发送到 selenium 服务器 在常规选项卡下 詹金斯字符串参数 Name APP Default Value http localhost basecode 在构建后操作下
  • 如何阻止 Jenkins 中的 CI 构建意外发布到发布存储库?

    有时 开发人员会不小心签入 POM 中没有 SNAPSHOT 的版本 这将构建 Maven 项目并将工件发布到发布存储库 我怎样才能避免这种情况呢 我只想发布构建工件以发布存储库 而不是 CI 构建 我考虑了以下问题 但它们都不是一个简单的
  • 使用 Ruby 验证 Jenkins 插件表单

    我正在用 Ruby 开发一个 Jenkins 插件 您应该能够配置连接到服务器的每个节点 以便在该节点失去与主服务器的连接时将电子邮件发送到指定的地址 EmailNodeProperty添加一个字段来输入电子邮件地址 Save an ema
  • 在 Cloudbees Jenkins 文件夹中设置环境变量

    在我重新安装 Jenkins 和 Cloudbees Free Enterprise 插件后 Jenkins 文件夹中设置的环境变量停止工作并从配置 UI 中消失 但是 它仍然存在于文件系统上的 config xml 中 如下所示
  • 如何从 Jenkins 管道中的函数返回“allOf”的值

    我们有一个 Jenkins 管道设置 使用 Jenkinsfile 来定义不同构建需要做什么 在我们的很多阶段 当我们要发布版本时 我们需要完成一些工作 但如果不打算发布版本 则可以跳过这些工作 目前我们有这样的代码 when allOf
  • 解锁 Jenkins - 如何

    我已经使用 putty 从 Windows 系统在我的 ec2 实例上安装了 jenkins 当我尝试通过网络访问 jenkins 时 我使用 var lib jenkins secrets initialAdminPassword 解锁
  • Jenkins 管道和 java.nio.file.* 方法的问题

    我正在尝试使用 java nio file 中的方法在 Jenkins 管道中执行一些基本文件操作 无论代码存在于哪个节点块中 代码都在主节点上执行 在管道中 我已经验证了各个节点块都是正确的 它们唯一地标识了特定的节点 但是 pathEx
  • 将 CCtray 与 Jenkins 结合使用,同时启用安全性(使用 HTTPS)

    我将 Jenkins 服务器配置为仅使用 HTTPS 并启用安全性 我也不喜欢任何未登录的人查看仪表板 即使它是空的 在这里 我禁用了 匿名 的 读取 访问权限 到目前为止 所有这些都完全符合我的喜好 但想要通过例如向远程客户端添加一些构建
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • 访问 jelly 模板中的自定义环境变量

    使用 Jenkins 管道 您可以通过以下方式设置任何环境变量全局变量称为 env 果冻模板反过来 您可以访问 Jenkins API 包括hudson model AbstractBuild and hudson model Abstra
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 如何从容器内运行 podman?

    我想跑podman https podman io作为运行 CI CD 管道的容器 但是 我不断从 podman 容器中收到此错误 podman info ERRO 0000 overlay is not supported over ov
  • 如何将 Hudson/Jenkins 参数传递给 Windows 批处理命令

    好吧 我需要在我的 Hudson 作业中执行一个批处理文件 我有一个参数 Jenkis 参数 我需要将这个值 如参数 传递给批处理文件 我尝试了以下操作 Deploy cmd configuration DEPLOYCONFIGURATIO

随机推荐

  • 如何将数据从一张工作表导入到另一张工作表

    我在 Excel 中有两个不同的工作表 所有第 1 行单元格中的标题都相同 a1 id b1 名称 c1 价格 我的问题是 有没有办法将数据 如名称 从一个工作表导入到另一个工作表中 其中两个工作表中的 id 相同 eg sheet 1 s
  • 如何找到 2 个数字中的最大值(更大、更大)?

    我有两个变量value and run value 9999 run problem getscore 如何找出哪个更大 并获得更大的值 See also Find the greatest largest maximum number i
  • Thread.Sleep 与 Task.Delay?

    我知道Thread Sleep阻塞一个线程 但确实Task Delay还阻止 或者只是像Timer它对所有回调使用一个线程 当不重叠时 this https stackoverflow com questions 15341962 how
  • 如何在 git 服务器端禁用压缩?

    我有一个存储库 从中拉取需要很长时间 因为服务器几乎没有可用 RAM 并且它在交换时进行了大量操作 remote Compressing objects 24 正在发生 即使我在服务器本地克隆 网络没有那么受限 因此发送所有未压缩的数据就可
  • PHP:多维数组中的foreach

    我有一个动态表单来创建创建数组的章节和子章节 var dump POST array textfield gt array 0 gt title one 1 gt title two 2 gt title three 4 gt title
  • SwiftUI - 如何将工具栏添加到 NavigationView 内的 TabView 选项卡?

    我正在尝试添加不同的toolbars 到我的每个选项卡 但它们没有显示 该应用程序主要在横向 iPad 上使用 我可以将工具栏添加到TabView本身并显示 但我不知道如何将按下导航堆栈的按钮传递到要在本地处理的各个视图 视图模型 我尝试过
  • Flutter:-如何将视图放置在屏幕的中心和底部?

    我正在创建教程屏幕 其中有两个视图 一个应该位于屏幕中央 另一个应该位于屏幕底部 但我的两种观点都不正确 请检查下面的图片 我已经完成了一些代码行来做到这一点 但没有得到正确的解决方案 请检查下面的代码一次 import package f
  • 如何将ajax放入循环中?

    我在循环内的 ajax 请求中有一个 ajax 请求 这里是 for var i 0 i lt input files length i ajaxFileUpload url dasdasdsa success function ajax
  • Python(flask/marshmallow)ValueError:解包值太多(预期为 2)

    我正在开发 Flask 项目 并使用 marshmallow 来验证用户输入 下面是一个代码片段 def create user in data request get json data errors Userschema load in
  • 如何在 Vue.js 方法函数中设置默认参数值?

    我试图在我的组件方法之一中为函数设置默认参数值 例如 methods myFuntion isAction false 但是当调试 isAction 的值时我得到一个 MouseEvent 我找到了解决方案 看起来事件也默认传递给该方法 因
  • 带有 ASP.NET 网站的 NUnit

    我目前正在尝试升级我们工作中的构建服务器 从没有构建服务器到拥有一个 我正在使用 JetBrainsTeamCity http en wikipedia org wiki TeamCity 已经使用过锐锐 http en wikipedia
  • Angular2 和 TypeScript 导入 node_modules

    我有一个非常简单的 hello world Angular2 应用程序 我还做出了一个明显不合理的决定 即在我的开发项目和 Spring 后端的最终部署文件夹之间使用不同的目录结构 由于这种差异 我在 TypeScript 导入方面遇到了问
  • 从嵌套集生成 JSON(perl、sql、jquery)

    我在数据库中有内容页面 使用嵌套集 我需要通过 jQuery jsTree 插件显示它 需要返回带有如下数据的 JSON data node1Title children data subNode1Title children data s
  • 单击按钮上的 JFileChooser

    我有一个按钮 单击它我希望弹出 JFileChooser 我已经尝试过这个 JButton browse new JButton Browse add browse browse addActionListener new ClassBro
  • Azure Cosmos DB 检查字段中的数组是否包含在搜索数组中

    我有一个 Microsoft Azure CosmosDB MongoDB Api 数据库 我正在尝试获取其中一个数组字段完全包含在我的搜索数组中的所有文档 所以 我正在寻找的是 考虑到包含文档的集合测试 id 1 filters 1 2
  • Qt - 自定义小数点和千位分隔符

    如何将数字 双精度 转换为具有自定义小数点和千位分隔符的字符串 我见过 QLocale 但我不想选择本地化国家 地区 而是指定我自己的小数点和千位分隔符 Thanks Qt 不支持自定义区域设置 但仅处理组和小数点字符很简单 const Q
  • 查询对象 mongoose 的嵌套数组

    我想在嵌套对象中查找带有 Alexa 的名称 操场 https mongoplayground net p rqYQtf0liaX https mongoplayground net p rqYQtf0liaX item journal i
  • 类型“Object”上不存在属性“json”

    我正在尝试使用 Angular 2 HttpClient 通过 REST 获取数据 我正在关注这里的角度教程https angular io tutorial toh pt6 https angular io tutorial toh pt
  • Woocommerce REST API - 添加自定义路由

    我有一家 Woocommerce 商店 我正在使用 Woocommerce REST API 在另一个网站上列出产品等 它工作正常 不过 我缺少一些功能 我想知道是否可以通过自定义调用来扩展 API 通过阅读 Woocommerce 的源代
  • 如何自动增加詹金斯构建号?

    如何自动增加 jenkins 内部版本号或使用 shell 脚本 现在我正在使用配置选项执行相同的操作 并手动增加 我想自动完成 您所要求的 即在多个作业之间保持内部版本号相同 很简单不可能的在詹金斯 这是通过设计完成的 正如 Jenkin