Gear/cronbuild
Материал из ALT Linux Wiki
(→Настройка cronbuild.) |
(→локальные скрипты cronbuild для автоматизации обновления .git репозитрия) |
||
Строка 27: | Строка 27: | ||
=== локальные скрипты cronbuild для автоматизации обновления .git репозитрия === | === локальные скрипты cronbuild для автоматизации обновления .git репозитрия === | ||
- | {{cmd|cronbuild-update-source}} | + | Сердцем cronbuild является скрипт {{cmd|.gear/cronbuild-update-source}}. |
+ | <source lang="bash"> | ||
+ | #!/bin/sh -ve | ||
+ | PKGNAME=<...> | ||
+ | rm -f $PKGNAME-SNAPSHOT.tar.gz | ||
+ | wget -c http://www.pkgname.org/download/pkgname/pkgname-SNAPSHOT.tar.gz | ||
+ | tar xzf $PKGNAME-SNAPSHOT.tar.gz | ||
+ | rm -f $PKGNAME-SNAPSHOT.tar.gz | ||
+ | git rm -r -f $PKGNAME | ||
+ | rm -rf $PKGNAME | ||
+ | mv $PKGNAME-SNAMPSHOT $PKGNAME | ||
+ | git add $PKGNAME | ||
+ | </source> | ||
==== Полный список служебных файлов cronbuild в {{path|.gear/}} ==== | ==== Полный список служебных файлов cronbuild в {{path|.gear/}} ==== | ||
Строка 69: | Строка 81: | ||
| | | | ||
|} | |} | ||
+ | |||
=== Пример использования .gear/cronbuild-* === | === Пример использования .gear/cronbuild-* === |
Версия 22:38, 2 июля 2010
Содержание |
Введение в cronbuild.
Некоторые пакеты по своей природе нуждаются в постоянном обновлении, при этом при обновлении у этих пакетов спек практически не меняется. К таким пакетам относятся различные базы - антивирусные, оборудования (foomatic-db, PCI IDs, мониторов, ...), cliparts, и т. д. Как правило, в версии/релизе таких пакетов присутствует timestamp. Система cronbuild предназначена для автоматизации сборки таких пакетов. Теперь майнтайнеру достаточно один раз настроить для пакета cronbuild и пакет будет автоматически собираться в Сизиф с заданной майнтайнером периодичностью, например, раз в неделю, до тех пор, пока сборка не сломается.
При этом пакеты собираются только тогда, когда это действительно нужно: если после обновления файлы исходников не изменились (согласно git diff HEAD), то сборка пакета будет пропущена, так как в ней нет необходимости.
Настройка cronbuild.
cronbuild состоит из 3-х частей:
- локальные скрипты cronbuild для автоматизации обновления .git репозитрия.
- утилиты для локальной сборки (пакет gear-cronbuild)
- сервер удаленной сборки (cronbuild repocop.altlinux.org)
локальные скрипты cronbuild для автоматизации обновления .git репозитрия
Сердцем cronbuild является скрипт .gear/cronbuild-update-source.
#!/bin/sh -ve PKGNAME=<...> rm -f $PKGNAME-SNAPSHOT.tar.gz wget -c http://www.pkgname.org/download/pkgname/pkgname-SNAPSHOT.tar.gz tar xzf $PKGNAME-SNAPSHOT.tar.gz rm -f $PKGNAME-SNAPSHOT.tar.gz git rm -r -f $PKGNAME rm -rf $PKGNAME mv $PKGNAME-SNAMPSHOT $PKGNAME git add $PKGNAME
Полный список служебных файлов cronbuild в .gear/
файл | Описание |
---|---|
cronbuild-update-source | Основной скрипт для обновления содержимого пакета. |
cronbuild-update-version | Скрипт для обновления версии и/ли релиза пакета. Не обязателен. |
cronbuild-add-changelog | Скрипт для кастомизации changelog. Не обязателен. |
cronbuild-options | Конфигурационный файл. Не обязателен. |
Скрипты должны быть помечены как исполняемые. К файлам конфигурации это не оносится.
cronbuild-options
переменная | Описание |
---|---|
cronbuild_interval | |
cronbuild_mailto | |
cronbuild_cc | |
cronbuild_mastergit | |
cronbuild_masterbranch |