[devel] Персональная собиралка Сизифа

Evgeny Sinelnikov =?iso-8859-1?q?sin_=CE=C1_altlinux=2Eru?=
Ср Май 7 14:39:14 MSD 2008


2008/5/7 Alexey Gladkov <legion на altlinux.ru>:
> Wartan Hachaturow wrote:
>
> > Я не зря сказал "персональная собиралка" :)
> >
>

geet-autobuilder, в таком случае, можно рассматривать как инструмент
для персональной сборки.
По умолчанию он использует следующий конфиг:
/etc/geet/config
gitsrv_dir   = $GEET_CONFIG/servers
flavours_dir = $GEET_CONFIG/flavours
target       = i586
flavour      = sisyphus

builddir     = $TMPDIR/geet-tmp-build

bin          = $GEET_HOME/repo/RPMS
src          = $GEET_HOME/repo/SRPMS
info_dir     = $GEET_HOME/info
archive      = $GEET_HOME/archive

hasher       = $HOME/hasher-SS
aptconf      = /etc/apt/apt.conf.SS
repo         = /var/ftp/pub/Repository

В /etc/geet/servers лежат файлы по именам хостов, понимаемых ssh, и
каталоги с именами протоколов, в которых аналогично лежат файлы по
именам хостов. Таким образом, если в .ssh/config прописан git.alt,
файл  /etc/geet/servers/git.alt может выглядеть так:
#PACKAGE USER BRANCH
ponyprog2000 sin master
installer ldv master
Первое слово определяет пакет, второе - разработчика, третье - имя
ветки, по умолчанию rc - git.alt:/people/USER/packages/PACKAGE.git
+BRANCH:rc
Для работы по http можно аналогично создать файл -
/etc/geet/servers/http/git.altlinux.org
Файл ~/.geet может использоваться для переопределения стандартных настроек.

Порядок работы такой:
1) репозитории вытягиваются командой:
git-fetch git.alt:/people/USER/packages/PACKAGE.git +BRANCH:rc
или
git-fetch http://git.altlinux.org/people/USER/packages/PACKAGE.git +BRANCH:rc
2) затем проверяется коммит, если ранее он не собирался, то
проводиться попытка сборки... В случае удачи пакеты hasher складывает
в bin (по умолчанию равен $GEET_HOME/repo/RPMS) и src (по умолчанию
равен $GEET_HOME/repo/SRPMS). В файле info_dir/PACKAGE/version
указывается коммит сборки. В случае не удачной сборки коммит
записывается в файл info_dir/PACKAGE/fail.
3) после удачной сборки пакеты сортируются в каталогах
repo/SRPMS.flavour, repo/arch/RPMS.flavour
Для повторной пересборки в каталоге info_dir/PACKAGE необходимо
создать файл rebuild

Текущие проблемы:
1) Нужно сделать нормальное сохранение лога сборки
2) Нужно отладить нормальный выход по CTRL+C и по другим сигналам
3) Нужно корреткно отслеживать пересборку - сейчас, в случае неудачной
пересборки rebuild не удаляется
4) В идеале брать информацию путём rpmquery к SPEC-файлу нужно, как и
в gear, перенести в chroot

В целом, как персональная собиралка, может уже и подойти....

-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Devel