[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