与Hudson一起使用自动部署脚本的帮助

|| 我们正在开发一个自动部署脚本,该脚本需要在Hudson的\“ Execute Shell \”步骤中运行。当前,该脚本读取param 1. GroupId:ArctifactId:Version:Packaging(项目已Mavenized) 2.服务器名称:VahRoot:TcInstance 我需要从Hudson Job配置中指定的pom.xml中读取G:A:V:P参数。尽管Hudson提供了WORKSPACE env-var,但是考虑到可能存在当前正在执行的pom名称为pom.xyz.xml的情况,很难在工作空间中搜索pom.xml。
#!/bin/bash

usage()
{
echo \"Usage: $0 -s-r-g-a-v-p-i\";
exit 1;
}

if [ $# -lt 14 ] ; then
usage;
fi

# \":\" decides which options require an argument
while getopts s:r:g:a:v:p:i: opt
do
case \"$opt\" in
s) echo \"hello $OPTARG\";
serverName=$OPTARG;;
r) echo \"hello $OPTARG\";
vahroot=$OPTARG;;
g) echo \"hello $OPTARG\";
groupid=$OPTARG;;
a) echo \"hello $OPTARG\";
artifactid=$OPTARG;;
v) echo \"hello $OPTARG\";
version=$OPTARG;;
p)echo \"hello $OPTARG\";
packagetype=$OPTARG;;
i)echo \"hello $OPTARG\";
tcinstance=$OPTARG;;
\\?) usage;;
esac
done
cd $vahroot
echo \"Now in $vahroot\"
source $vahroot/admin/env/vahenv.sh
tcmgr.sh restart -t all
echo \"$?\"
if [ $? -ne 0 ]
then
echo \"Exception occured\"
exit 1;
fi
version_chk=\"SNAPSHOT\"
if [[ $version =~ $version_chk ]]
then
echo \"groupid is $groupid artifactid $artifactid version $version packagetype             $packagetype tcinstance $tcinstance\"
tcmgr.sh deploy -w nexus://snapshots:$groupid:$artifactid:$version:$packagetype -i     $tcinstance
exit 0;
else
echo \"groupid is $groupid artifactid $artifactid version $version packagetype     $packagetype tcinstance $tcinstance\"
tcmgr.sh deploy -w nexus://releases:$groupid:$artifactid:$version:$packagetype -i     $tcinstance
exit 0;
fi   
在阅读hudson配置时,我需要帮助,以便为我指定作业中指定的pom位置,这样我就无需要求用户输入G:A:V:P参数。
已邀请:
可以使用适用于hudson(jenkins)的多个部署插件来为您完成这项工作。如果这不是您的选择,则可以将hudson环境变量
WORKSPACE
传递给脚本,相对于此,应该很容易在工作空间中找到pom.xml。

要回复问题请先登录注册