{"id":20019726,"url":"https://github.com/arkuznetsov/yadt","last_synced_at":"2025-09-06T14:34:03.104Z","repository":{"id":111475200,"uuid":"100566436","full_name":"arkuznetsov/yadt","owner":"arkuznetsov","description":"Приложение oscript для развертывания конфигураций 1С на базах подключенных к хранилищу.","archived":false,"fork":false,"pushed_at":"2017-09-15T06:07:52.000Z","size":192,"stargazers_count":27,"open_issues_count":1,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-12T16:09:35.518Z","etag":null,"topics":["1c","1c-enterprise","bsl","onescript","oscript"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arkuznetsov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-17T05:51:05.000Z","updated_at":"2024-11-15T23:12:30.000Z","dependencies_parsed_at":"2023-04-18T11:03:21.605Z","dependency_job_id":null,"html_url":"https://github.com/arkuznetsov/yadt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fyadt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fyadt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fyadt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fyadt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkuznetsov","download_url":"https://codeload.github.com/arkuznetsov/yadt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241453882,"owners_count":19965270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1c","1c-enterprise","bsl","onescript","oscript"],"created_at":"2024-11-13T08:28:33.178Z","updated_at":"2025-03-02T03:28:58.964Z","avatar_url":"https://github.com/arkuznetsov.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yet another deploy tool (yadt)\r\n\r\nРазвертывание новой версии конфигурации на базах подключенных к хранилищу 1С.\r\n\r\nПредполагается схема поставки с использованием хранилища разработки и рабочего (production) хранилища. Соответственно предполагается следующий порядок развертывания:\r\n1. Все доработки выполняются в базах, подключенных к хранилищу разработки\r\n2. В момент релиза из хранилища разработки выгружается последняя версия конфигурации.\r\n3. Конфигурация заливается в служебную базу для обновления рабочего (production) хранилища.\r\n4. Рабочая база (или базы) обновляются из рабочего хранилища\r\n\r\n![Storage Flow](./img/storageflow.png)\r\n\r\n## Возможные команды\r\n|||\r\n|-|-|\r\n| **help** | - Вывод справки по параметрам |\r\n| **incver** | - Изменение версии подсистемы конфигурации |\r\n| **makecf** | - Создание cf-файла из последней версии указанного хранилища |\r\n| **updstorage** | - Обновление хранилища конфигурации из указанного cf-файла |\r\n| **updib** | - Обновление конфигурации ИБ из указанного хранилища конфигурации |\r\n| **batch** | - Последовательное выполнение команд по сценариям, заданным в файлах (json) |\r\n\r\n\r\nДля подсказки по конкретной команде наберите help \u003cкоманда\u003e\r\n\r\n## incver - Изменение версии подсистемы конфигурации\r\n\r\nИсходим из того, что выполняется существенная доработка конфигурации, но при этом предполагается регулярное обновление типовой. Нужно как-то версионировать систему, для чего создается общий макет, в котором хранится \"наша\" версия системы.\r\nДанная команда выполняет:\r\n1. Извлечение макета, содержащего версию из хранилища конфигурации\r\n2. Изменение номера версии (инкремент) в соответствии с маской\r\n3. Загрузку измененного макета в конфигурацию и помещение в хранилище\r\n\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные \";\" (параметры командной строки имеют более высокий приоритет)|\r\n| **-storage-path** | - Адрес хранилища конфигурации |\r\n| **-storage-user** | - Имя пользователя хранилища конфигурации |\r\n| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |\r\n| **-ver-tmplt** | - Имя общего текстового макета конфигурации, содержащего номер версии подсистемы |\r\n| **-ver-mask** | - Маска версии подсистемы|\r\n               # - оставить значение без изменения\r\n               * - увеличить значение на 1\r\n               $ - сбросить номер версии на 0 (для последнего числа на 1)\r\n               \u003cлюбые символы\u003e - вставить указанные символы\r\n       по умолчанию - \"#.#.#.*\"\r\n|||\r\n|-|-|\r\n| **-ver-comment** | - Комментарий к изменению версии подсистемы в хранилище |\r\n                    по умолчанию: \"Изменена версия \u003cНомер новой версии\u003e\"\r\n                    для подстановки номера новой версии может использоваться символ подстановки %version%\r\n|||\r\n|-|-|\r\n| **-v8version** | - Версия платформы 1С |\r\n\r\n\r\n#### Пример:\r\n```\r\nyadt incver -storage-path \"tcp://StorageServer/MyRepo\" -storage-user MyStorageUser -ver-tmplt мое_ВерсияПодсистемы -ver-mask #.#.*.$ -ver-comment \"Установлена версия %version%\"\r\n```\r\n\r\n## makecf - Создание cf-файл из последней версии указанного хранилища\r\n\r\nКоманда выполняет выгрузку cf-файла из хранилища конфигурации для последующего обновления рабочего хранилища.\r\n\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные \";\" (параметры командной строки имеют более высокий приоритет)|\r\n| **-storage-path** | - Адрес хранилища конфигурации |\r\n| **-storage-user** | - Имя пользователя хранилища конфигурации |\r\n| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |\r\n| **-cf-path** | - Путь к выгружаемому cf-файлу |\r\n| **-v8version** | - Версия платформы 1С |\r\n\r\n\r\n#### Пример:\r\n```\r\nyadt makecf -storage-path \"tcp://StorageServer/MyRepo\" -storage-user MyStorageUser -cf-path d:\\tmp\\1cv8.cf\r\n```\r\n\r\n## updstorage - Обновление хранилища конфигурации из указанного cf-файла\r\n\r\nКоманда выполняет обновление указанного хранилища конфигурацией из указанного cf-файла\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные \";\" (параметры командной строки имеют более высокий приоритет)|\r\n| **-storage-path** | - Адрес хранилища конфигурации |\r\n| **-storage-user** | - Имя пользователя хранилища конфигурации |\r\n| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |\r\n| **-ib-path** | - Адрес служебной ИБ для выполнения обновления (если не указана, то используется временная ИБ) |\r\n| **-ib-user** | - Имя пользователя служебной ИБ |\r\n| **-ib-pwd** | - Пароль пользователя служебной ИБ |\r\n| **-upd-comment** | - Комментарий обновления |\r\n| **-cf-path** | - Путь к cf-файлу обновления |\r\n| **-delcf** | - Флаг удаления cf-файла после обновления |\r\n| **-v8version** | - Версия платформы 1С |\r\n\r\n\r\n#### Пример:\r\n```\r\nyadt updstorage  -storage-path \"tcp://StorageServer/MyRepo\" -storage-user MyStorageUser -ib-path \"/FD:/data/MyDatabase\" -cf-path d:\\tmp\\1cv8.cf -delcf\r\n```\r\n\r\n## updib - Обновление ИБ из хранилища\r\n\r\nКоманда выполняет обновление указанной информационной базы из указанного хранилища конфигурации.\r\n\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **-params** | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные \";\" (параметры командной строки имеют более высокий приоритет)|\r\n| **-ib-path** | - Адрес ИБ для обновления |\r\n| **-ib-user** | - Имя пользователя ИБ |\r\n| **-ib-pwd** | - Пароль пользователя ИБ |\r\n| **-storage-path** | - Адрес хранилища конфигурации |\r\n| **-storage-user** | - Имя пользователя хранилища конфигурации |\r\n| **-storage-pwd** | - Пароль пользователя хранилища конфигурации |\r\n| **-upd-db** | - Флаг обновления конфигурации БД |\r\n| **-uccode** | - Код разрешения доступа к ИБ |\r\n| **-v8version** | - Версия платформы 1С |\r\n\r\n\r\n#### Пример:\r\n```\r\nyadt updib  -ib-path \"/FMyServer\\MyProductionDB\" -ib-user Admin -ib-pwd P@ssw0rd -storage-path \"tcp://StorageServer/MyRepo\" -storage-user MyStorageUser\r\n```\r\n\r\n\r\n## batch - Выполнить сценарий\r\n\r\nПоследовательно выполняет команды указнные в файле JSON\r\n\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **\\\u003cСценарии\\\u003e** | - Файлы JSON содержащие команды и значения параметров, могут быть указаны несколько файлов разделенные \"\";\"\" (обработка файлов выполняется в порядке следования) |\r\n\r\n\r\n#### Пример:\r\n```\r\nyadt batch \"./deploy_scenario.json\"\r\n```\r\n\r\n#### Пример сценария:\r\n```\r\n{\r\n    \"params\": {\r\n        \"-storage-path\": \"tcp://MyServer/MyStorage\",\r\n        \"-storage-user\": \"__Robot\",\r\n        \"-storage-pwd\": \"Pa@ssw0rd\"\r\n    },\r\n    \"stages\": {\r\n        \"Изменение версии\": {\r\n            \"description\": \"Изменение версии\",\r\n            \"tool\": \"yadt\",\r\n            \"command\": \"incver\",\r\n            \"params\": {\r\n                \"-ver-tmplt\": \"мое_ВерсияПодсистемы\"\r\n            }\r\n        },\r\n        \"Выгрузка конфигурации\": {\r\n            \"description\": \"Выгрузка конфигурации\",\r\n            \"tool\": \"yadt\",\r\n            \"command\": \"makecf\",\r\n            \"params\": {\r\n                \"-cf-path\": \"d:\\\\tmp\\\\1cv8.cf\"\r\n            }\r\n        }\r\n    }\r\n}\r\n```\r\n\r\n## Использование c Jenkins\r\nВ jenkinsfile описан конвейр выполняющий следующий сценарий:\r\n* Изменение версии конфигурации в хранилище разработки\r\n* Создание cf-файла для обновления рабочего хранилища\r\n* Обновление рабочего хранилища\r\n* Обновление рабочей ИБ из рабочего хранилища\r\n\r\n\r\n| Переменные окружения конвейера ||\r\n|-|-|\r\n| **dev_storage_path** | - Адрес хранилища разработки |\r\n| **dev_storage_cred** | - Идентификатор credentials для доступа к хранилищу разработки |\r\n|||\r\n| **ver_tmplt** | - Имя общего макета конфигурации, содержащего номер версии подсистемы |\r\n| **ver_mask** | - Маска версии |\r\n| **ver_comment** | - Комментарий к изменению версии |\r\n|||\r\n| **dev_cf_path** | - путь к файлу обновления конфигурации для выгрузки | \r\n| **upd_cf_path** | - путь к файлу обновления конфигурации для обновления | \r\n|||\r\n| **dev_agent_label** | - Метка агента Jenkins, где будут выполнятся манипуляции с хранилищем разработки | \r\n| **upd_agent_label** | - Метка агента Jenkins, где будет выполнятся обновление рабочего хранилища |\r\n| **prd_agent_label** | - Метка агента Jenkins, где будет выполнятся обновление рабочей базы |\r\n|||\r\n| **prd_storage_path** | - Адрес рабочего хранилища |\r\n| **upd_storage_cred** | - Идентификатор credentials для обновления рабочего хранилища |\r\n| **prd_storage_cred** | - Идентификатор credentials для получения конфигурации из рабочего хранилища |\r\n|||\r\n| **prd_ib_path** | - Путь к рабочей базе для обновления |\r\n| **prd_ib_cred** | - Идентификатор credentials для доступа к рабочей базе |\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Fyadt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkuznetsov%2Fyadt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Fyadt/lists"}