Конфигурационный репозитарий
Конфигурационный репозитарий предназначен для фиксации состояния ядра и модулей. Реализован как репозитарий 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 (по закладкам в субрепозитариях, а не конфигурационного!)
Комментариев нет:
Отправить комментарий