Конфигурационный репозитарий
Конфигурационный репозитарий предназначен для фиксации состояния ядра и модулей. Реализован как репозитарий mercurial с субрепозитариями.
Состав:
- субрепозитрии (ядро, модули)
- файл build.bat для сборки java-артефактов
- файлы *.url, содержащие ссылку на артефакт:SUBREPO - субрепозитарий артефактаDIFFMASK - маска файлов, по которым определяются наличие изменений в исходниках для артефактаDIST - относительный путь к собранному артефактуURL - для теговых ревизий пытаемся получить артефакт по ссылке, иначе из DIST ( %(version)s заменяется тегом без префикса 'version-', если он есть).
Конфигурации для разных банков выносятся в отдельные бранчи. Имя совпадает с кодом банка, который используется при формировании дистрибутива (HRT, HSBK, HSBC).

Сборка артефактов
Для локальной сборки артефактов по текущему состоянию конфигурации используется команда hg cbs4build
hg cbs4build [-D PROP] [sub1] [subN] Build system options: -D --define PROP [+] Define a maven system property
Собирает как отдельные модули, так и по всем модулям (по умолчанию), вошедшим в конфигурацию. Для сборки вызывается build.bat из корня рабочей копии.
Пример использования:
# сбрка ядра и всех модулей hg cbs4build # сбрка ядра hg cbs4build draft # сбрка модулей cli com hg cbs4build cli com # полная сборка без тестов hg cbs4build -D skipTests=true
Сканирование артефактов
Сканирование артефактов применяется для генерации url файлов по файлам артефактов
>hg help cbs4scan hg cbs4scan cbs4scan - scan bundles and create url files options: -I --include PATTERN include names matching the given patterns --archiva VALUE Apache Archiva server (default: http://maven.colvir.ru/archiva/repository/snapshots)
Пример использования:
# сканировать подкаталог dist hg cbs4scan # сканировать подкаталог dist по маске hg cbs4scan -I *.jar
Создание дистрибутива (патча)
Создать дистрибутив можно как по изменениям конфигурации в одной ревизии, так и по диапазону ревизий.
>hg help cbs4dist hg cbs4dist [-c REV] | [-r REV1 [-r REV2]] -d DISTCODE cbs4dist - generate distribution options: -r --rev REV [+] revision -c --change REV change made by revision -d --distibname VALUE distribution name --vparam VALUE [+] v_run param --nosrv no srv files --noapps no artifacts files --nobuild no build bundles
В дистрибутив включаются изменённые артефакты и изменённые серверные объекты в субрепозитариях. Дистрибутив создаётся многофункциональной утилитой Victory и может быть установлен утилитой CSC.
Пример использования:
# собрать дистрибутив по изменениям конфигурации в ревизии 5 hg cbs4dist -c 5 -d TEST # собрать дистрибутив по изменениям конфигурации в ревизиях с 1 по 3 hg cbs4dist -r 1::3 -d TEST # собрать дистрибутив по изменениям конфигурации в ревизии 8, без предварительной сборки изменённых артефактов (только если артефакты уже собирались ранее и присутствуют в dist!) hg cbs4dist -c 8 -d TEST --nobuild # собрать дистрибутив по изменениям конфигурации в ревизии 8, включив в него (дополнительно) серверные файлы их каталога E:\config4\SRVGET\0e85af7b927c # разрешается использовать только в случае необходимости: # 1. выполнить одноразовый скрипт, который не подходит для фиксации в hg, но необходим для корректной посадки патча (конвертация, перекомпиляция класса и т.д) # 2. загрузить xml, который уже есть под контролем в hg, но по разным причинам отсутствующий на инстанции hg cbs4dist -c 8 -d TEST --vparam srvget:E:\config4\SRVGET\0e85af7b927c
Фиксация состояний дистрибутивов
Для привязки дистрибутива (патчя) к конфигурации используются закладки (bookmarks). На ревизию REV конфигурации устанавливается закладка
hg bookmark -r 10 HRT-272.8.1
Все закладки и головные ревизии бранчей конфигурационного репозитария имеют наглядное соответствие в субрепозитариях

Для синхронизации закладок между конфигурационным репозитарием и субрепозитариями используется команда cbs4bookmark
>hg.exe help cbs4book hg cbs4bookmark [BOOKMARK|BRANCH] aliases: cbs4book Bookmark management options: -c --change change bookmark in subrepositaries -d --delete delete bookmark in subrepositaries -u --update update all subrepositaries to bookmark -p --push push bookmarks --pull pull all subrepositaries
Варианты использования:
- вывести информацию по всем закладкам
- вывести информацию по закладке HRT-272.2
- вывести отличия, если есть
- установить закладки в субрепозитариях по данным конфигурационного репозиатария
- Протолкнуть закладку REL39-4 из субрепозитариев в центральное хранилище
- Обновить все субрепозитарии на закладку REL39 (по закладкам в субрепозитариях, а не конфигурационного!)
Комментариев нет:
Отправить комментарий