Помогите с авто-развертыванием скрипта с Hudson - PullRequest
0 голосов
/ 19 апреля 2011

Мы разрабатываем сценарий автоматического развертывания, который необходимо запустить на шаге «Выполнение оболочки» Хадсона. В настоящее время сценарий читает параметр
1. GroupId: ArctifactId: Версия: Упаковка (проект Mavenized)
2Имя сервера: VahRoot: TcInstance

Мне нужно прочитать параметр G: A: V: P из pom.xml, который указан в конфигурации Hudson Job.Хотя Hudson предоставляет WORKSPACE env-var, поиск pom.xml в рабочей области становится затруднительным, учитывая, что может существовать сценарий, в котором текущее имя pom исполняется pom.xyz.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.

1 Ответ

0 голосов
/ 19 апреля 2011

Существует несколько плагинов развертывания, доступных для hudson (jenkins), которые могут сделать эту работу за вас.В случае, если это не вариант для вас: вы можете передать переменную окружения hudson WORKSPACE в ваш скрипт, и относительно этого будет легко найти pom.xml в рабочей области.

...