git - 根据工件文件选择 git 分支
问题描述
每次我们发布正式版本时,我都有一份 jenkins 工作来执行我的测试。这项工作需要一个特定的分支,具体取决于新的发布版本。
例如,如果新版本是 3.14.15.9.627,则分支必须是 */ver/3.14.15。
每次有新版本发布时,我都必须手动更改作业配置以适应我们的需求,方法如下:
更改源代码管理>要构建的分支到 */ver/3.14.15
将 Artifactory Configuration>Download Details>Spec 更改为:
"files": [ { "pattern": "my_repo/ver/3.14.15/3.14.15.9.627/*.exe", "target": "${WORKSPACE}/installer/" },
如何根据上传的安装程序配置 git 分支和工件规范?
解决方案
当使用 webhooks 发布新版本时,自动触发您的 jenkins 作业。例如,您的 jenkins 作业可以配置如下,您可以动态插入分支和存储库名称,这些名称可以从 webhook 中检索。
checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: "refs/heads/${branchName}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: "git@bitbucket.org:${repoName}.git"]]]
将您的 Artifactory 下载规范配置为如下所示。如果您的工件名称是唯一的并且可以从您的构建或存储库中检索,那么您可以将值插入变量artifact_name
并在您的模式中使用它。
"files": [
{
"pattern": "my_repo/ver/(*)/(*)/${artifact_name}*.exe",
"target": "${WORKSPACE}/installer/"
}
或者
如果您的工件名称不是唯一的,请将您的 Artifactory 下载规范配置为如下所示。例如。如果您的新版本是 3.14.15.9.627 并且您可以从文件或存储库中的某个位置读取它,您可以 grep 并将 3.14.15 分配给变量branchVersion
,并将 3.14.15.9.627 分配给变量releaseVersion
"files": [
{
"pattern": "my_repo/ver/${branchVersion}/${releaseVersion}/*.exe",
"target": "${WORKSPACE}/installer/"
}
如果您使用的是像 maven 这样的构建工具,它会变得更加容易
推荐阅读
- java - TableView 中的列排序
- maya - 使用 Python 在 Maya 中刷新 textScrollList
- javascript - 在 Chrome 66 中向 NTLM 身份验证服务器发出 API 请求
- mongodb - 如何调用存储的 JavaScript 函数向使用 linq 和 c# 驱动程序的查询返回的对象添加字段
- sql - 希望在 SQL Server 中拆分/解析文本
- hadoop - sqoop eval 中文件的 SQL 评估参数
- java - 解码编码文本
- javascript - 检查模板文字是否在脚本中可用
- javascript - 遍历嵌套的 Javascript 对象
- java - 如何停止Wildfly11加载jar依赖webservices