Skip to content

Commit

Permalink
Merge branch 'release/v.1.11.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Jun 20, 2024
2 parents 33bb391 + 54af0b3 commit 196318c
Show file tree
Hide file tree
Showing 6 changed files with 122 additions and 27 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека
- _--last-version-description_ - путь к файлу `description.json` с описанием последней загруженной версией
- _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы `description.json`)
- _--download-limit_ - ограничение количества загружаемых версий за 1 запуск
- _--download-only_ - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
- _--extract_ - флаг распаковки загруженного архива
- _--extract-path_ - каталог для распаковки загруженного архива
- _--extract-dir_ - регулярное выражение, отбора каталогов в архиве EFD для распаковки
Expand Down Expand Up @@ -255,6 +256,7 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm
- **ОписаниеПоследнейВерсии** - путь к файлу description.json с описанием последней загруженной версии Ложь - будут загружены все релизы с учетом других настроек
- **ЗагружатьСуществующие** - Истина - будут загружены все найденные релизы независимо от существующих в каталоге для загрузки Ложь - будут загружены только отсутствующие в каталоге для загрузки релизы (проверяются файлы description.json)
- **ОграничениеКоличества** - ограничение количества загружаемых за 1 раз версий
- **ТолькоСкачать** - Истина - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
- **РаспаковыватьEFD** - Истина - если загруженный архив содержит упакованный шаблонконфигурации (содержит файл 1cv8.efd), то он будет распакован
- **КаталогДляРаспаковкиEFD** - каталог для распаковки шаблона конфигурации
- **КаталогВАрхивеДляРаспаковкиEFD** - регулярное выражение, отбора каталогов в архиве EFD для распаковки
Expand Down
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yard")
.Версия("1.10.0")
.Версия("1.11.0")
.ВерсияСреды("1.6")
.ЗависитОт("logos")
.ЗависитОт("asserts")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,14 @@
ВерсииДляОбработки.Добавить(ОписаниеВерсии);
КонецЦикла;

Если ВерсииДляОбработки.Количество() = 0 Тогда
Лог.Ошибка("[%1]: Не найден файл исходной конфигурации %2 и description.json в подкаталоге релиза в %3.",
ЭтотОбъект,
ИмяФайлаКонфигурации,
ПутьККаталогуКонфигураций);
Возврат;
КонецЕсли;

Служебный.СортироватьОписанияВерсийПоДате(ВерсииДляОбработки);

ФайлОписанияПоследнейВерсии = Новый Файл(ОбъединитьПути(РепозитарийГит, "description.json"));
Expand Down
116 changes: 92 additions & 24 deletions src/Классы/ВыгрузкаКонфигурацииВГит.os
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
Перем База_СтрокаСоединения; // Строка - строка соединения служебной базы 1С
Перем КонвертироватьВФорматЕДТ; // Булево - конвертацировать в формат 1С:Enterprise development tools
Перем СнятьСПоддержки; // Булево - снять конфигурацию с поддержки
Перем ВерсияЕДТ; // Строка - верия среды 1С:Enterprise development tools для конвертации
Перем ВерсияЕДТ; // Строка - верcия среды 1С:Enterprise development tools для конвертации
Перем ОтносительныйПуть; // Строка - относительный путь к исходникам внутри репозитория
// для выполнения выгрузки

Expand Down Expand Up @@ -327,6 +327,22 @@
НовыйРепозитарий = Истина;
КонецЕсли;

Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда
Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда
Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""",
ТипЗнч(ЭтотОбъект),
ИмяВеткиГит,
ГитРепозитарий.ПолучитьРабочийКаталог());
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина);
ИначеЕсли НЕ НовыйРепозитарий Тогда
Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""",
ТипЗнч(ЭтотОбъект),
ИмяВеткиГит,
ГитРепозитарий.ПолучитьРабочийКаталог());
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина);
КонецЕсли;
КонецЕсли;

Если Не ЗначениеЗаполнено(ОтносительныйПуть) Тогда
КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf");
Иначе
Expand Down Expand Up @@ -384,22 +400,6 @@

КаталогВыгрузкиИсходников = ?(КонвертироватьВФорматЕДТ, МенеджерВР.СоздатьКаталог("config-src"), КаталогВыгрузки);

Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда
Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда
Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""",
ТипЗнч(ЭтотОбъект),
ИмяВеткиГит,
ГитРепозитарий.ПолучитьРабочийКаталог());
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина);
ИначеЕсли НЕ НовыйРепозитарий Тогда
Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""",
ТипЗнч(ЭтотОбъект),
ИмяВеткиГит,
ГитРепозитарий.ПолучитьРабочийКаталог());
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина);
КонецЕсли;
КонецЕсли;

Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" %5 ""%6""",
ТипЗнч(ЭтотОбъект),
ОписаниеВерсии.Версия,
Expand Down Expand Up @@ -709,18 +709,32 @@
Процедура СконвертироватьВФорматЕДТ(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ = Неопределено)

Лог.Информация("[%1]: Начало конвертации в формат ЕДТ", ТипЗнч(ЭтотОбъект));

ИспользоватьНовуюВерсиюCLI = Ложь;
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
ИспользоватьНовуюВерсиюCLI = Версии.СравнитьВерсии("2023.3.5", ВерсияЕДТ) <= 0;
КонецЕсли;

Если ИспользоватьНовуюВерсиюCLI Тогда
КонвертироватьВФорматЕДТ_НоваяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ);
Иначе
КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ);
КонецЕсли;

Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект));

КонецПроцедуры

Процедура КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ)
ПараметрыЕНВ = Новый Соответствие();
ПараметрыЕНВ.Вставить("RING_OPTS", "-Xmx6g -Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");
МенеджерВР = Новый МенеджерВременныхФайлов();
ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws");

ПараметрыЕНВ = Новый Соответствие();
ПараметрыЕНВ.Вставить("RING_OPTS", "-Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");

КомандаЕДТ = "edt";
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
КомандаЕДТ = СтрШаблон("%1@%2", КомандаЕДТ, ВерсияЕДТ);
КонецЕсли;

ПараметрыЗапускаЕДТ = Новый Массив();
ПараметрыЗапускаЕДТ.Добавить(КомандаЕДТ);
ПараметрыЗапускаЕДТ.Добавить("workspace import");
Expand All @@ -737,17 +751,71 @@
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);

КодВозврата = Команда.Исполнить();

МенеджерВР.Удалить();
Если КодВозврата <> 0 Тогда
ВызватьИсключение Команда.ПолучитьВывод();
КонецЕсли;

КонецПроцедуры

Процедура КонвертироватьВФорматЕДТ_НоваяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ)
МенеджерВР = Новый МенеджерВременныхФайлов();
ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws");

// Получаем путь к исполняемым файлам едт
КомандаЕДТ = "edt";
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
КомандаЕДТ = СтрШаблон("%1@%2", КомандаЕДТ, ВерсияЕДТ);
КонецЕсли;
Команда = Новый Команда();
ПараметрыЗапускаЕДТ = Новый Массив();
ПараметрыЗапускаЕДТ.Добавить(КомандаЕДТ);
ПараметрыЗапускаЕДТ.Добавить("locations list");
Команда = Новый Команда();
Команда.УстановитьКоманду("ring");
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);
КодВозврата = Команда.Исполнить();
Вывод = СокрЛП(Команда.ПолучитьВывод());

Если КодВозврата <> 0 Тогда
ВызватьИсключение Вывод;
КонецЕсли;

Если Не ЗначениеЗаполнено(Вывод) Тогда
ВызватьИсключение "Не удалось найти установленного дистрибутива EDT";
КонецЕсли;
Лог.Информация("[%1]: Найдена установленная версия ЕДТ: %2", ТипЗнч(ЭтотОбъект), Вывод);

// Выполняем конвертацию
ИмяФайлаСкрипта = ?(ПараметрыПриложения.ЭтоWindows(), "1cedtcli.exe", " 1cedtcli");
Команда = Новый Команда();
ИтоговыйПуть = ОбъединитьПути(Вывод, ИмяФайлаСкрипта);
Команда.УстановитьКоманду(ИтоговыйПуть);
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);

ПараметрыЗапускаЕДТ = Новый Массив();
ПараметрыЗапускаЕДТ.Добавить("-data");
ПараметрыЗапускаЕДТ.Добавить(ВоркСпейсЕДТ);
ПараметрыЗапускаЕДТ.Добавить("-vmargs");
ПараметрыЗапускаЕДТ.Добавить("-Xmx8g -Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");
ПараметрыЗапускаЕДТ.Добавить("-command");
ПараметрыЗапускаЕДТ.Добавить("import");
ПараметрыЗапускаЕДТ.Добавить("--configuration-files");
ПараметрыЗапускаЕДТ.Добавить(КаталогВФорматеКонфигуратора);
ПараметрыЗапускаЕДТ.Добавить("--project");
ПараметрыЗапускаЕДТ.Добавить(КаталогВФорматеЕДТ);
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);

КодВозврата = Команда.Исполнить();
МенеджерВР.Удалить();

Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект));
Если КодВозврата <> 0 Тогда
ВызватьИсключение Команда.ПолучитьВывод();
КонецЕсли;

КонецПроцедуры


// Процедура - Проверяет существование указанной ветки в репозитарии GIT
//
// Параметры:
Expand Down
Loading

0 comments on commit 196318c

Please sign in to comment.