Hudsonの「Execute Shell」ステップで実行する必要のある自動展開スクリプトを開発中です。現在、スクリプトはparamを読み取ります
1. GroupId:ArctifactId:Version:Packaging(プロジェクトVahRoot:A:V:ハドソンジョブ設定で指定されているのpom.xmlからPのPARAM TcInstanceHudsonによる自動展開スクリプトのヘルプ
私はGを読み取るために必要Mavenized)
2サーバー名です。 HudsonはWORKSPACE env-varを提供していますが、現在実行中のpom名がpom.xyz.xmlであるシナリオが考えられるため、ワークスペース内のpom.xmlを検索することは難しくなります。 A:V:PのPARAMを
#!/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
は、私はGを入力するようユーザーに求める必要がないように私のジョブで指定ポンポンの場所を与えるためにハドソンの設定を読んで助けを必要としています。
POmと必要な情報を読み込んだjavaプログラムを書いたり、作業を行うMavenプラグインを書いたり、Hudson Pluginを書いてみてはどうでしょうか... – khmarbaise