首页 > 解决方案 > 根据工件文件选择 git 分支

问题描述

每次我们发布正式版本时,我都有一份 jenkins 工作来执行我的测试。这项工作需要一个特定的分支,具体取决于新的发布版本。

例如,如果新版本是 3.14.15.9.627,则分支必须是 */ver/3.14.15。

每次有新版本发布时,我都必须手动更改作业配置以适应我们的需求,方法如下:

如何根据上传的安装程序配置 git 分支和工件规范?

标签: gitjenkinsartifactory

解决方案


当使用 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 这样的构建工具,它会变得更加容易


推荐阅读