pin*_*ngu 9 build jenkins jenkins-plugins jenkins-pipeline jenkins-blueocean
我们正在使用Jenkins Pipeline Multibranch Plugin和Blue Ocean.
通过我的阅读,我认为将项目的内部版本编号与Jenkins运行相结合是很常见的,因为这允许从已安装的应用程序到CI系统的可追溯性,然后到源控制的更改,然后到提示的问题改变.
问题是对于每个分支,运行编号从0开始.对于具有多个分支的项目,似乎不可能保证唯一的编号.
也许您可能想尝试使用唯一的(全局)构建显示名称,而不是唯一的(全局数字)构建号?
根据“管道语法:全局变量引用”currentBuild.displayName是一个可写属性。因此,您可以向内部版本号添加附加信息(以便使其全局唯一),并在后续工件/应用程序构建步骤中使用该字符串(将其合并到应用程序的版本输出中以实现所需的可追溯性),例如:
currentBuild.displayName = "${env.BRANCH_NAME}-${currentBuild.id}"
Run Code Online (Sandbox Code Playgroud)
使用构建的计划或开始时间格式 ( currentBuild.timeInMillis) 作为可读日期,或使用 SCM 修订版也可能有用,例如生成“20180119-091439-rev149923”。
也可以看看:
您可以从中获取 Git 分支名称$GIT_BRANCH并将其添加到$BUILD_NUMBER以创建跨分支唯一的 ID(只要您的公司不做类似让自己被大公司接管的事情,该大公司将您迁移到另一个 Jenkins 服务器并重置所有内部版本号:为了防止出现这种情况,您可能需要使用$BUILD_URL)。
只有 snag$GIT_BRANCH包含该/字符,以及您在命名分支时使用的任何字符,这些在您需要 ID 的所有地方可能允许也可能不允许。($BUILD_URL也将包含像:和/这样的字符)如果这是一个问题,一种解决方法是删除不需要的字符tr:
export MY_ID=$(echo $GIT_BRANCH-$BUILD_NUMBER | tr -dc [A-Za-z0-9-])
Run Code Online (Sandbox Code Playgroud)
(-dc手段删除这些字符的补充,因此A-Z,a-z,0-9和-你想的字符保持)。
| 归档时间: |
|
| 查看次数: |
2708 次 |
| 最近记录: |