https://github.com/arkuznetsov/yadt
Приложение oscript для развертывания конфигураций 1С на базах подключенных к хранилищу.
https://github.com/arkuznetsov/yadt
1c 1c-enterprise bsl onescript oscript
Last synced: 5 months ago
JSON representation
Приложение oscript для развертывания конфигураций 1С на базах подключенных к хранилищу.
- Host: GitHub
- URL: https://github.com/arkuznetsov/yadt
- Owner: arkuznetsov
- License: mpl-2.0
- Created: 2017-08-17T05:51:05.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-15T06:07:52.000Z (over 8 years ago)
- Last Synced: 2025-01-12T16:09:35.518Z (about 1 year ago)
- Topics: 1c, 1c-enterprise, bsl, onescript, oscript
- Language: 1C Enterprise
- Homepage:
- Size: 188 KB
- Stars: 27
- Watchers: 7
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Yet another deploy tool (yadt)
Развертывание новой версии конфигурации на базах подключенных к хранилищу 1С.
Предполагается схема поставки с использованием хранилища разработки и рабочего (production) хранилища. Соответственно предполагается следующий порядок развертывания:
1. Все доработки выполняются в базах, подключенных к хранилищу разработки
2. В момент релиза из хранилища разработки выгружается последняя версия конфигурации.
3. Конфигурация заливается в служебную базу для обновления рабочего (production) хранилища.
4. Рабочая база (или базы) обновляются из рабочего хранилища

## Возможные команды
|||
|-|-|
| **help** | - Вывод справки по параметрам |
| **incver** | - Изменение версии подсистемы конфигурации |
| **makecf** | - Создание cf-файла из последней версии указанного хранилища |
| **updstorage** | - Обновление хранилища конфигурации из указанного cf-файла |
| **updib** | - Обновление конфигурации ИБ из указанного хранилища конфигурации |
| **batch** | - Последовательное выполнение команд по сценариям, заданным в файлах (json) |
Для подсказки по конкретной команде наберите help <команда>
## incver - Изменение версии подсистемы конфигурации
Исходим из того, что выполняется существенная доработка конфигурации, но при этом предполагается регулярное обновление типовой. Нужно как-то версионировать систему, для чего создается общий макет, в котором хранится "наша" версия системы.
Данная команда выполняет:
1. Извлечение макета, содержащего версию из хранилища конфигурации
2. Изменение номера версии (инкремент) в соответствии с маской
3. Загрузку измененного макета в конфигурацию и помещение в хранилище
| Параметры: ||
|-|-|
| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)|
| **-storage-path** | - Адрес хранилища конфигурации |
| **-storage-user** | - Имя пользователя хранилища конфигурации |
| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |
| **-ver-tmplt** | - Имя общего текстового макета конфигурации, содержащего номер версии подсистемы |
| **-ver-mask** | - Маска версии подсистемы|
# - оставить значение без изменения
* - увеличить значение на 1
$ - сбросить номер версии на 0 (для последнего числа на 1)
<любые символы> - вставить указанные символы
по умолчанию - "#.#.#.*"
|||
|-|-|
| **-ver-comment** | - Комментарий к изменению версии подсистемы в хранилище |
по умолчанию: "Изменена версия <Номер новой версии>"
для подстановки номера новой версии может использоваться символ подстановки %version%
|||
|-|-|
| **-v8version** | - Версия платформы 1С |
#### Пример:
```
yadt incver -storage-path "tcp://StorageServer/MyRepo" -storage-user MyStorageUser -ver-tmplt мое_ВерсияПодсистемы -ver-mask #.#.*.$ -ver-comment "Установлена версия %version%"
```
## makecf - Создание cf-файл из последней версии указанного хранилища
Команда выполняет выгрузку cf-файла из хранилища конфигурации для последующего обновления рабочего хранилища.
| Параметры: ||
|-|-|
| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)|
| **-storage-path** | - Адрес хранилища конфигурации |
| **-storage-user** | - Имя пользователя хранилища конфигурации |
| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |
| **-cf-path** | - Путь к выгружаемому cf-файлу |
| **-v8version** | - Версия платформы 1С |
#### Пример:
```
yadt makecf -storage-path "tcp://StorageServer/MyRepo" -storage-user MyStorageUser -cf-path d:\tmp\1cv8.cf
```
## updstorage - Обновление хранилища конфигурации из указанного cf-файла
Команда выполняет обновление указанного хранилища конфигурацией из указанного cf-файла
| Параметры: ||
|-|-|
| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)|
| **-storage-path** | - Адрес хранилища конфигурации |
| **-storage-user** | - Имя пользователя хранилища конфигурации |
| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |
| **-ib-path** | - Адрес служебной ИБ для выполнения обновления (если не указана, то используется временная ИБ) |
| **-ib-user** | - Имя пользователя служебной ИБ |
| **-ib-pwd** | - Пароль пользователя служебной ИБ |
| **-upd-comment** | - Комментарий обновления |
| **-cf-path** | - Путь к cf-файлу обновления |
| **-delcf** | - Флаг удаления cf-файла после обновления |
| **-v8version** | - Версия платформы 1С |
#### Пример:
```
yadt updstorage -storage-path "tcp://StorageServer/MyRepo" -storage-user MyStorageUser -ib-path "/FD:/data/MyDatabase" -cf-path d:\tmp\1cv8.cf -delcf
```
## updib - Обновление ИБ из хранилища
Команда выполняет обновление указанной информационной базы из указанного хранилища конфигурации.
| Параметры: ||
|-|-|
| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)|
| **-ib-path** | - Адрес ИБ для обновления |
| **-ib-user** | - Имя пользователя ИБ |
| **-ib-pwd** | - Пароль пользователя ИБ |
| **-storage-path** | - Адрес хранилища конфигурации |
| **-storage-user** | - Имя пользователя хранилища конфигурации |
| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |
| **-upd-db** | - Флаг обновления конфигурации БД |
| **-uccode** | - Код разрешения доступа к ИБ |
| **-v8version** | - Версия платформы 1С |
#### Пример:
```
yadt updib -ib-path "/FMyServer\MyProductionDB" -ib-user Admin -ib-pwd P@ssw0rd -storage-path "tcp://StorageServer/MyRepo" -storage-user MyStorageUser
```
## batch - Выполнить сценарий
Последовательно выполняет команды указнные в файле JSON
| Параметры: ||
|-|-|
| **\<Сценарии\>** | - Файлы JSON содержащие команды и значения параметров, могут быть указаны несколько файлов разделенные "";"" (обработка файлов выполняется в порядке следования) |
#### Пример:
```
yadt batch "./deploy_scenario.json"
```
#### Пример сценария:
```
{
"params": {
"-storage-path": "tcp://MyServer/MyStorage",
"-storage-user": "__Robot",
"-storage-pwd": "Pa@ssw0rd"
},
"stages": {
"Изменение версии": {
"description": "Изменение версии",
"tool": "yadt",
"command": "incver",
"params": {
"-ver-tmplt": "мое_ВерсияПодсистемы"
}
},
"Выгрузка конфигурации": {
"description": "Выгрузка конфигурации",
"tool": "yadt",
"command": "makecf",
"params": {
"-cf-path": "d:\\tmp\\1cv8.cf"
}
}
}
}
```
## Использование c Jenkins
В jenkinsfile описан конвейр выполняющий следующий сценарий:
* Изменение версии конфигурации в хранилище разработки
* Создание cf-файла для обновления рабочего хранилища
* Обновление рабочего хранилища
* Обновление рабочей ИБ из рабочего хранилища
| Переменные окружения конвейера ||
|-|-|
| **dev_storage_path** | - Адрес хранилища разработки |
| **dev_storage_cred** | - Идентификатор credentials для доступа к хранилищу разработки |
|||
| **ver_tmplt** | - Имя общего макета конфигурации, содержащего номер версии подсистемы |
| **ver_mask** | - Маска версии |
| **ver_comment** | - Комментарий к изменению версии |
|||
| **dev_cf_path** | - путь к файлу обновления конфигурации для выгрузки |
| **upd_cf_path** | - путь к файлу обновления конфигурации для обновления |
|||
| **dev_agent_label** | - Метка агента Jenkins, где будут выполнятся манипуляции с хранилищем разработки |
| **upd_agent_label** | - Метка агента Jenkins, где будет выполнятся обновление рабочего хранилища |
| **prd_agent_label** | - Метка агента Jenkins, где будет выполнятся обновление рабочей базы |
|||
| **prd_storage_path** | - Адрес рабочего хранилища |
| **upd_storage_cred** | - Идентификатор credentials для обновления рабочего хранилища |
| **prd_storage_cred** | - Идентификатор credentials для получения конфигурации из рабочего хранилища |
|||
| **prd_ib_path** | - Путь к рабочей базе для обновления |
| **prd_ib_cred** | - Идентификатор credentials для доступа к рабочей базе |