четверг, 18 сентября 2014 г.

Перейти к концу метаданных
Переход к началу метаданных
Icon
Автор: Филон В. 
Дата: 07.05.2014 
Санкция Центра компетенции: в работе
Оценка Центра компетенции: в работе

Конфигурационный репозитарий

Конфигурационный репозитарий  предназначен для фиксации состояния  ядра и модулей. Реализован как репозитарий mercurial с субрепозитариями.
Состав:
  1. субрепозитрии (ядро, модули)
  2. файл build.bat для сборки java-артефактов
    mvn clean install -Pdeploy-to-osgi -Pdeploy-to-dir -Dcolvir-osgi -Dcolvir-client-qx -Dcolvir-client-qx-sarasvati-editor -Dcolvir-messager -Dcolvir-report -Dcolvir-log -Dserver.bundleDir=%CD%\..\..\dist\osgi -Dserver.deployDir=%CD%\..\..\dist\war %*
  3. файлы *.url, содержащие ссылку на артефакт:
    SUBREPO=draft
    DIFFMASK=java
    DIST=dist\osgi\colvir-apps-v3-root-osgi.jar
    URL=http://maven.colvir.ru/archiva/repository/snapshots/com/colvir/apps/v3/colvir-apps-v3-root-osgi/%(version)s/colvir-apps-v3-root-osgi-%(version)s.jar
    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
Варианты использования:
  1. вывести информацию по всем закладкам
     Expand source
  2. вывести информацию по закладке HRT-272.2
     Expand source
  3. вывести отличия, если есть
     Expand source
  4. установить закладки в субрепозитариях по данным конфигурационного репозиатария
     Expand source
  5. Протолкнуть закладку REL39-4 из субрепозитариев в центральное хранилище
     Expand source
  6. Обновить все субрепозитарии на закладку REL39  (по закладкам в субрепозитариях, а не конфигурационного!)
     Expand source

Комментариев нет:

Отправить комментарий