Mar*_*nda 4 svn hudson build jenkins jenkins-plugins
我们要使用一个Jenkins作业来构建应用程序。
如何配置单个Jenkins作业以从主干或分支进行释放过程中的解决方案?并没有工作,因为我们的SVN结构是不同的(从历史的原因,我们不能改变它):
http://my-svn-repo/projects/
????branches
? ????app1
? ? ????BRANCH_A
? ? ????BRANCH_B
? ? ????BRANCH_C
? ????app2
? ? ????BRANCH_D
? ? ????BRANCH_E
? ? ????BRANCH_F
? ????app3
? ????BRANCH_G
? ????BRANCH_H
? ????BRANCH_I
????tags
? ????app1
? ? ????BRANCH_D
? ? ????BRANCH_E
? ? ????BRANCH_F
? ????app2
? ? ????TAG_D
? ? ????TAG_E
? ? ????TAG_F
? ????app3
? ????TAG_G
? ????TAG_H
? ????TAG_I
????trunk
????app1
????app2
????app3
Run Code Online (Sandbox Code Playgroud)
所描述的解决方案如何配置单个Jenkins作业以进行从主干或分支的释放过程?选择显示:
我们希望拥有以下内容:
选择1:
选择2(自动基于选择1,例如针对app2):
使用活动选择参数和Groovy脚本。
APP以选择应用程序。Groovy脚本应返回选择列表,因此只需返回硬编码列表(或从文件或所需的任何位置读取它):创建参数VERSION以选择版本。
svn list http://my-svn-repo/projects/tags/appX --username some_name --password some_password
APP。每当的值APP更新时,Groovy脚本都会使用参考参数的更新值来重新评估选择列表。这是用于复制和粘贴的脚本:
def svnBaseUrl = 'http://my-svn-repo/projects/'
def versions = ['trunk/' + APP]
def svnTagsUrl = svnBaseUrl + 'tags/' + APP
def command = ['svn', 'list', svnTagsUrl,'--username', 'some_name', '--password', 'some_password']
def proc = command.execute()
proc.waitForOrKill(10000)
if ( proc.exitValue() == 0 ) {
proc.text.eachLine { versions.add('tags/' + APP + '/' + it) }
}
def svnBranchesUrl = svnBaseUrl + 'branches/' + APP
command = ['svn', 'list', svnTagsUrl,'--username', 'some_name', '--password', 'some_password']
proc = command.execute()
proc.waitForOrKill(10000)
if ( proc.exitValue() == 0 ) {
proc.text.eachLine { versions.add('branches/' + APP + '/' + it) }
}
return versions
Run Code Online (Sandbox Code Playgroud)
BASE_SVN_URL=http://my-svn-repo/projects用于复制和粘贴的脚本:
#!/bin/bash
echo "================================================"
echo "Parameters for the build:"
echo "Application: $APP"
echo "Base SVN URL: ${BASE_SVN_URL}"
echo "Version: ${VERSION}"
echo "SVN URL: ${BASE_SVN_URL}/${VERSION}"
echo "================================================"
Run Code Online (Sandbox Code Playgroud)
在测试过程中,您可以在脚本的末尾添加一行以立即终止您的作业,并只看到以下值:
exit 1
Run Code Online (Sandbox Code Playgroud)
Build-application-core-job,它将执行实际的构建。将所有必要的参数传递给作业:| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |