Aru*_*gal 3 integer range build-numbers jenkins jenkins-plugins
想知道 Jenkins 内部版本号 (BUILD_NUMBER) 可以获得的最大数量是多少?我试图在网上查找但找不到此信息。
它是无限的还是有一些限制(INT 或 INT64 或其他类型)?
PS: 我不是在寻找如何使用以下插件将其重置回 #1 或 #N 或将其值设置为给定名称(使用 Set build name 插件)。 https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin
为了找到它的限制,使用下一个版本号插件- 当我将版本设置为“65,535”时,它仍然可以成功地让我获得 65536,并且我不断将该值增加到 999999999(9 次),并且它仍然有效,即下一个版本运行了 1000000000 次,并为其他几个运行/构建获得了有效的 Jenkins 构建#。
当我尝试将下一个版本号设置为:9999999999(10次)时,Jenkins插件抛出错误消息(显示我设置的下一个版本号不是整数,即不在范围内):
A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.
Stack trace
javax.servlet.ServletException: Build number must be an integer
at org.jvnet.hudson.plugins.nextbuildnumber.NextBuildNumberAction.doSubmit(NextBuildNumberAction.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Run Code Online (Sandbox Code Playgroud)
发现 Jenkins BUILD_NUMBER 是 SIGNED Integer 数据类型,INT 有符号限制为:
int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
Run Code Online (Sandbox Code Playgroud)
因此,Jenkins 作业可以设置或构建的最后一个值是:2147483647(此处为 4 个字节)。设置高于此数字的任何值都会产生预期的 INT 限制错误。
使用SET NEXT BUILD NUMBER插件还注意到以下问题:
如果我将下一个版本号设置在 -2147483648 或 2147483647(正数)之间,则该插件在两种情况下都可以工作,即给出负数或正数并设置它不会出错。但是,如果您已经达到 build# 2147483647 (在作业历史记录下),那么即使将 build# 设置为 1 也不会生成下一个构建 1 或 2 。或 3 等等。
由于 BUILD_NUMBER 已签名(上述范围内的 -N 到 +N),并且例如:设置-22用于使用插件设置下一个 build#,它没有给我build # -21或build# 21案件。
发生的情况是,虽然提供了一个比上一个/上一个构建#更低的负值,但这个插件在限制内获取该值,但实际上没有做任何事情/给我预期的构建#。当我单击“立即构建” /每次单击“立即构建”时,如果您单击“设置下一个构建编号”来检查该值,我注意到框中列出的数字会根据我的次数自动递减。点击“立即构建”(仅当您达到限制时才会发生这种情况)并且负/较低值对下一个构建号没有影响(根据插件文档)。
我通过创建一个新的 test_job 对此进行了测试(通过仅保留 1 个构建来丢弃旧构建):
| 归档时间: |
|
| 查看次数: |
6955 次 |
| 最近记录: |