2016-08-25 17:13:50 +00:00
source " $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd ) /libs/libcommon/src/get_revision_lib.sh "
2016-03-18 12:17:08 +00:00
2016-02-07 21:58:58 +00:00
function add_daemon_impl {
local daemon = $1
local control = $CONTROL
local dependencies = $2
local description_short = " ${ daemon %-metrika-yandex/ daemon } "
local description_full = $3
echo -e "\n\n" >> $control ;
echo " Package: $daemon " >> $control ;
echo "Section: libdevel" >> $control ;
echo "Architecture: any" >> $control ;
echo -n "Depends: \${shlibs:Depends}, \${misc:Depends}" >> $control ;
for dependency in $dependencies
do
echo -n " , $dependency " >> $control
done
echo >> $control
echo " Description: $description_short " >> $control ;
echo " $description_full " >> $control ;
}
# Создаём файл control из control.in.
# добавляет в файл CONTROL секции для демонов из DAEMONS
function make_control {
local CONTROL = " $1 "
local DAEMONS = " $2 "
rm -f $CONTROL
cp -f $CONTROL .in $CONTROL
for DAEMON_PKG in $DAEMONS
do
case " $DAEMON_PKG " in
'clickhouse-server' )
2017-01-09 13:42:29 +00:00
add_daemon_impl clickhouse-server-base 'adduser' 'clickhouse-server binary'
2016-05-19 21:27:25 +00:00
[ -n " $BUILD_PACKAGE_FOR_METRIKA " ] && add_daemon_impl clickhouse-server-metrika " clickhouse-server-base(=1.1. $REVISION ) " 'Configuration files specific for Metrika project for clickhouse-server-base package'
add_daemon_impl clickhouse-server-common " clickhouse-server-base(=1.1. $REVISION ) " 'Common configuration files for clickhouse-server-base package'
2016-02-07 21:58:58 +00:00
; ;
'clickhouse-client' )
2016-11-15 10:25:08 +00:00
add_daemon_impl clickhouse-client " clickhouse-server-base(=1.1. $REVISION ) " "ClickHouse client and additional tools such as clickhouse-local and clickhouse-benchmark."
2016-02-07 21:58:58 +00:00
; ;
2016-06-26 04:52:28 +00:00
'clickhouse-benchmark' )
2016-11-15 10:25:08 +00:00
#skip it explicitly
2016-11-14 19:14:11 +00:00
; ;
'clickhouse-local' )
2016-11-15 10:25:08 +00:00
#skip it explicitly
2016-06-26 04:52:28 +00:00
; ;
* )
2016-06-28 14:06:27 +00:00
add_daemon_impl " ${ DAEMON_PKG } -metrika-yandex "
2016-06-26 04:52:28 +00:00
; ;
2016-02-07 21:58:58 +00:00
esac
done
}
# Генерируем номер ревизии.
# выставляются переменные окружения REVISION, AUTHOR
function gen_revision_author {
2016-08-25 17:13:50 +00:00
REVISION = $( get_revision)
2016-02-07 21:58:58 +00:00
2016-05-28 00:52:18 +00:00
if [ [ $STANDALONE != 'yes' ] ]
then
# Создадим номер ревизии и попытаемся залить на сервер.
succeeded = 0
attempts = 0
max_attempts = 5
while [ $succeeded -eq 0 ] && [ $attempts -le $max_attempts ]
do
REVISION = $(( $REVISION + 1 ))
attempts = $(( $attempts + 1 ))
2016-02-07 21:58:58 +00:00
2016-08-24 09:19:39 +00:00
tag = " v1.1. $REVISION -testing "
2016-02-07 21:58:58 +00:00
2016-08-24 09:19:39 +00:00
echo -e " \nTrying to create tag: $tag "
if git tag -a " $tag " -m " $tag "
2016-05-28 00:52:18 +00:00
then
2016-08-24 09:19:39 +00:00
echo -e " \nTrying to push tag to origin: $tag "
git push origin " $tag "
if [ $? -ne 0 ]
2016-05-28 00:52:18 +00:00
then
2016-08-24 09:19:39 +00:00
git tag -d " $tag "
2016-05-28 00:52:18 +00:00
else
succeeded = 1
fi
fi
done
2016-08-24 09:19:39 +00:00
if [ $succeeded -eq 0 ]
then
2016-05-28 00:52:18 +00:00
echo "Fail to create tag"
exit 1
fi
2016-02-07 21:58:58 +00:00
fi
AUTHOR = $( git config --get user.name)
export REVISION
export AUTHOR
}
# Генерируем changelog из changelog.in.
# изменяет
# programs/CMakeLists.txt
# dbms/src/CMakeLists.txt
function gen_changelog {
REVISION = " $1 "
CHDATE = " $2 "
AUTHOR = " $3 "
CHLOG = " $4 "
DAEMONS = " $5 "
sed \
-e " s/[@]REVISION[@]/ $REVISION /g " \
-e " s/[@]DATE[@]/ $CHDATE /g " \
-e " s/[@]AUTHOR[@]/ $AUTHOR /g " \
-e " s/[@]EMAIL[@]/ $( whoami) @yandex-team.ru/g " \
< $CHLOG .in > $CHLOG
}
2016-08-30 19:28:47 +00:00
# Загрузка в репозитории Метрики
2016-02-07 21:58:58 +00:00
# рабочая директория - где лежит сам скрипт
function upload_debs {
REVISION = " $1 "
DAEMONS = " $2 "
# Определим репозиторий, в который надо загружать пакеты. Он соответствует версии Ubuntu.
source /etc/lsb-release
if [ " $DISTRIB_CODENAME " = = "precise" ] ; then
REPO = "metrika"
elif [ " $DISTRIB_CODENAME " = = "trusty" ] ; then
REPO = "metrika-trusty"
2016-08-30 19:29:48 +00:00
elif [ " $DISTRIB_CODENAME " = = "xenial" ] ; then
REPO = "metrika-xenial"
2016-02-07 21:58:58 +00:00
else
echo -e " \n\e[0;31mUnknown Ubuntu version $DISTRIB_CODENAME \e[0;0m\n "
fi
# Загрузка в репозиторий Метрики.
cd ../
DUPLOAD_CONF = dupload.conf
cat src/debian/dupload.conf.in | sed -e " s/[@]AUTHOR[@]/ $( whoami) /g " > $DUPLOAD_CONF
2016-05-19 21:27:25 +00:00
dupload metrika-yandex_1.1." $REVISION " _amd64.changes -t $REPO -c --nomail
2016-02-07 21:58:58 +00:00
}