Nigth build

Ночная сборка используется для того что бы каждый день быть уверенным в том, что без ошибок компилируется код, который лежит в основной ветке (trunk’е) системы контроля версий. Для этого на сервере, который работает 24 часа в сутки, ночью запускается компиляция проекта, и результат компиляции рассылается участникам проекта.

Простой способ завести ночную сборку — написать скрипт компилирующий проект и добавить выполнение этого скрипта в crontab.

Пример bash скрипта:

#! /bin/sh 
PROJ=proj_name                      #имя проекта
SVN_PATH="svn://${PROJ}/trunk/"     #путь в репозитории
BUILD_DIR="$HOME/tmp/${PROJ}_nb"    #директория для сборки
MAIL_BODY="$HOME/tmp/${PROJ}_mail"  #файл для формирования тела письма
LOG_FILE="$HOME/tmp/${PROJ}_log"    #лог-файл
 
#список рассылки
MAIL_LIST="developer@mail.ru manager@mail.ru tester@mail.ru" 
 
#подготовка  сборки
prepare()
{
  rm -rf $BUILD_DIR 1>&2
  echo -n "*** Creating temp directory..."
  install  -m 755 $BUILD_DIR 1>&2
  echo "" > $MAIL_BODY
  echo "" > $LOG_FILE
}
 
#получение исходников из системы контроля версий 
svn_co()
{
  echo -n "*** Checking out sources from "$SVN_PATH" to $BUILD_DIR..." 
  svn -q co $SVN_PATH $BUILD_DIR  1>&2
}
 
#компиляция
build()
{
  echo -n "*** Make all ..." 
  make all  -C $BUILD_DIR 1>&2
}
 
#в тело письма добавляем имя проекта и дату сборки
echo -n  ${PROG}    > $MAIL_BODY
date -R             >> $MAIL_BODY
echo ""             >> $MAIL_BODY
 
#этапы сборки
BUILD_STAGES="prepare
              svn_co 
              build"
 
#выполнем все этапы сборки
successful=1
for i in $BUILD_STAGES; do
  $i 1>> $MAIL_BODY 2>$LOG_FILE;
  if [ $? != 0 ]; then
    echo "ERROR" >> $MAIL_BODY
    tail $LOG_FILE >> $MAIL_BODY
    successful=0
  else
    echo "OK" >> $MAIL_BODY
  fi
done
 
#формируем тему письма
if [ "x$successful" = "x1" ] ; then
  MAIL_SUBJECT="${PROJ} build OK";
else
  MAIL_SUBJECT="${PROJ} build FAILED";
fi
 
#отправляем письмо
cat $MAIL_BODY  |  mutt $MAIL_LIST  -s "$MAIL_SUBJECT"
Запись опубликована в рубрике Использование linux с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>