Skip to content

Commit

Permalink
Merge branch 'release/v.0.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Jul 14, 2020
2 parents fb2abd1 + 082768f commit 8d81466
Show file tree
Hide file tree
Showing 8 changed files with 287 additions and 102 deletions.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yard")
.Версия("0.3.0")
.Версия("0.4.0")
.ВерсияСреды("1.4")
.ЗависитОт("logos")
.ЗависитОт("asserts")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,17 +241,11 @@

ФайлыОписанийВерсий = НайтиФайлы(ПутьККаталогуКонфигураций, "description.json", Истина);

ЧтениеОписания = Новый ЧтениеJSON();

ВерсииДляОбработки = Новый Массив();

Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл

ЧтениеОписания.ОткрытьФайл(ТекФайл.ПолноеИмя, КодировкаТекста.UTF8);

ОписаниеВерсии = ПрочитатьJSON(ЧтениеОписания, Ложь, , ФорматДатыJSON.ISO);

ЧтениеОписания.Закрыть();
ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя);

ФайлКонфигурации = Новый Файл(ОбъединитьПути(ТекФайл.Путь, ИмяФайлаКонфигурации));

Expand All @@ -264,28 +258,44 @@
ВерсииДляОбработки.Добавить(ОписаниеВерсии);
КонецЦикла;

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

ФайлОписанияПоследнейВерсии = Новый Файл(ОбъединитьПути(РепозитарийГит, "description.json"));

ДатаПоследнейВерсии = ВерсииДляОбработки[0].Дата - 1;

Если ФайлОписанияПоследнейВерсии.Существует() Тогда
ЧтениеОписания.ОткрытьФайл(ФайлОписанияПоследнейВерсии.ПолноеИмя, КодировкаТекста.UTF8);

ОписаниеВерсииВГит = ПрочитатьJSON(ЧтениеОписания, Ложь, , ФорматДатыJSON.ISO);

ОписаниеВерсииВГит = Служебный.ОписаниеРелиза(ФайлОписанияПоследнейВерсии.ПолноеИмя);

ДатаПоследнейВерсии = ОписаниеВерсииВГит.Дата;

КонецЕсли;

ЧтениеОписания.Закрыть();
ПредыдущаяВерсия = "0.0.0.0";

Для Каждого ТекОписание Из ВерсииДляОбработки Цикл

Если ТекОписание.Дата <= ДатаПоследнейВерсии Тогда
Лог.Отладка("[%1]: Дата версии %2 (%3) конфигурации %4 меньше или равна дате последней версии %5.",
ТипЗнч(ЭтотОбъект),
Формат(ТекОписание.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
ТекОписание.Версия,
ТекОписание.Имя,
ДатаПоследнейВерсии);
Продолжить;
КонецЕсли;

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

ПредыдущаяВерсия = ТекОписание.Версия;

ДатаКоммита = Служебный.ДатаPOSIX(ТекОписание.Дата);
СообщениеКоммита = СтрШаблон("Обновление версии конфигурации поставщика на %1", ТекОписание.Версия);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,37 +260,84 @@
//
Процедура ОбработатьДанные() Экспорт

Распаковщик.ОбеспечитьКаталог(РепозитарийГит);

ГитРепозиторий.УстановитьРабочийКаталог(РепозитарийГит);

СлужебныйКаталогГит = Новый Файл(ОбъединитьПути(РепозитарийГит, ".git"));

Если НЕ СлужебныйКаталогГит.Существует() Тогда
ГитРепозиторий.Инициализировать();
КонецЕсли;

КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf");

ВремФайл = Новый Файл(КаталогВыгрузки);
Если ВремФайл.Существует() Тогда
ФайлОписания = Новый Файл(ОбъединитьПути(РепозитарийГит, "description.json"));
ОписаниеВерсии = Новый Структура("Имя, Версия, Дата");
Если ФайлОписания.Существует() Тогда
ОписаниеВерсии = Служебный.ОписаниеРелиза(ФайлОписания.ПолноеИмя);
КонецЕсли;

Лог.Информация("[%1]: Начало удаления файлов версии %2 (%3) конфигурации ""%4"" из репозитария ""%5""",
ТипЗнч(ЭтотОбъект),
ОписаниеВерсии.Версия,
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
ОписаниеВерсии.Имя,
КаталогВыгрузки);
УдалитьФайлы(КаталогВыгрузки);
КонецЕсли;

Распаковщик.ОбеспечитьКаталог(КаталогВыгрузки);

ФайлКонфигурации = Новый Файл(ПутьККонфигурации);
ФайлОписания = Новый Файл(ОбъединитьПути(ФайлКонфигурации.Путь, "description.json"));
ОписаниеВерсии = Новый Структура("Имя, Версия, Дата");
Если ФайлОписания.Существует() Тогда
ОписаниеВерсии = Служебный.ОписаниеРелиза(ФайлОписания.ПолноеИмя);
КонецЕсли;

Лог.Информация("[%1]: Начало загрузки версии %2 (%3) конфигурации ""%4"" из файла ""%5""",
ТипЗнч(ЭтотОбъект),
ОписаниеВерсии.Версия,
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
ОписаниеВерсии.Имя,
ПутьККонфигурации);

Конфигуратор = Новый УправлениеКонфигуратором();

Конфигуратор.УстановитьКонтекст(База_СтрокаСоединения, "", "");
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ПутьККонфигурации);

Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" в репозитарий ""%5""",
ТипЗнч(ЭтотОбъект),
ОписаниеВерсии.Версия,
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
ОписаниеВерсии.Имя,
КаталогВыгрузки);

Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки);

ФайлКонфигурации = Новый Файл(ПутьККонфигурации);
ФайлОписания = Новый Файл(ОбъединитьПути(ФайлКонфигурации.Путь, "description.json"));
Если ФайлОписания.Существует() Тогда
НовыйФайлОписания = ОбъединитьПути(РепозитарийГит, "description.json");
КопироватьФайл(ФайлОписания.ПолноеИмя, НовыйФайлОписания);
КонецЕсли;

ФайлДампа = Новый Файл(ОбъединитьПути(КаталогВыгрузки, "ConfigDumpInfo.xml"));
Если ФайлДампа.Существует() Тогда
УдалитьФайлы(ФайлДампа.ПолноеИмя);
КонецЕсли;

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

ГитРепозиторий.ДобавитьФайлВИндекс(".");
ГитРепозиторий.УстановитьНастройку("user.name", ИмяАвтора);
ГитРепозиторий.УстановитьНастройку("user.email", ПочтаАвтора);
ПредставлениеАвтора = ИмяАвтора + " <" + ПочтаАвтора + ">";
Лог.Информация("Добавляем изменения в Git");

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

ГитРепозиторий.Закоммитить(СообщениеКоммита, Истина, , ПредставлениеАвтора, ДатаКоммита, , ДатаКоммита);

ПродолжениеОбработкиДанныхВызовМенеджера(КаталогВыгрузки);
Expand Down
34 changes: 28 additions & 6 deletions src/Классы/ЗагрузчикРелизов1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
Перем ФильтрВерсий; // Массив(Строка) - фильтр номеров версий
Перем ФильтрВерсийНачинаяСДаты; // Дата - фильтр по начальной дате версии (включая)
Перем ФильтрВерсийДоДаты; // Дата - фильтр по последней дате версии (включая)
Перем ФильтрДистрибутива; // Строка - фильтр заголовков ссылок на скачивание дистрибутива
// если не указан, то будет выполнена проверка наличия ссылки
// "Полный дистрибутив", затем "Дистрибутив обновления"

Перем КаталогДляСохранения; // Строка - каталог для загрузки релизов 1С
Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный шаблон
Expand Down Expand Up @@ -114,6 +117,15 @@
"Фильтр по последней дате версии (включая)");

ДобавитьОписаниеПараметра(Параметры,
"ФильтрДистрибутива",
"Строка",
Ложь,
"",
"Фильтр заголовков ссылок на скачивание дистрибутива
|если не указан, то будет выполнена проверка наличия ссылки
|""Полный дистрибутив"", затем ""Дистрибутив обновления""");

ДобавитьОписаниеПараметра(Параметры,
"КаталогДляСохранения",
"Строка",
Истина,
Expand Down Expand Up @@ -222,6 +234,7 @@
УстановитьПараметрОбработкиДанныхИзСтруктуры("ПарольПользователя" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийНачинаяСДаты" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийДоДаты" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь);
УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD" , ПараметрыОбработки);
Expand Down Expand Up @@ -431,6 +444,12 @@
.ТСтрока()
.ВОкружении("YARD_RELEASES_VERSION_END_DATE");

Команда.Опция("df distr-filter", "", "Фильтр заголовков ссылок на скачивание дистрибутива
|если не указан, то будет выполнена проверка наличия ссылки
|""Полный дистрибутив"", затем ""Дистрибутив обновления""")
.ТСтрока()
.ВОкружении("YARD_RELEASES_DISTR_FILTER");

Команда.Опция("p path", "", "каталог для загрузки релизов 1С")
.ТСтрока()
.ВОкружении("YARD_RELEASES_DOWNLOAD_PATH");
Expand Down Expand Up @@ -473,6 +492,7 @@

ВремДата = Служебный.ДатаИзСтроки(Команда.ЗначениеОпции("version-end-date"));
УстановитьПараметрОбработкиДанных("ФильтрВерсийДоДаты" , ВремДата);
УстановитьПараметрОбработкиДанных("ФильтрДистрибутива" , Команда.ЗначениеОпции("distr-filter"));

УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path"));
УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract"));
Expand Down Expand Up @@ -626,16 +646,18 @@
Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя);
КонецЕсли;

Если ОписаниеВерсии.ПолныйДистрибутив Тогда
ВидДистрибутива = "Полный";
СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, "Полный дистрибутив$");
Если ЗначениеЗаполнено(ФильтрДистрибутива) Тогда
ШаблонСсылки = ФильтрДистрибутива;
ИначеЕсли ОписаниеВерсии.ПолныйДистрибутив Тогда
ШаблонСсылки = "Полный дистрибутив$";
ИначеЕсли ОписаниеВерсии.ДистрибутивОбновления Тогда
ВидДистрибутива = "Обновление";
СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, "Дистрибутив обновления$");
ШаблонСсылки = "Дистрибутив обновления$";
Иначе
Возврат;
КонецЕсли;

СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, ШаблонСсылки);

Для Каждого ТекСсылка Из СписокСсылок Цикл

ИмяФайлаАрхива = ОбъединитьПути(КаталогДляСохранения,
Expand All @@ -646,7 +668,7 @@
Лог.Информация("Начало загрузки ""%1"", версия ""%2"":%3 (%4) в файл %5.",
ОписаниеВерсии.Имя,
ОписаниеВерсии.Версия,
ВидДистрибутива,
ШаблонСсылки,
ТекСсылка.ПутьДляЗагрузки,
ИмяФайлаАрхива);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,17 +207,11 @@

ФайлыОписанийВерсий = НайтиФайлы(ПутьККаталогуКонфигураций, "description.json", Истина);

ЧтениеОписания = Новый ЧтениеJSON();

ВерсииДляОбработки = Новый Массив();

Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл

ЧтениеОписания.ОткрытьФайл(ТекФайл.ПолноеИмя, КодировкаТекста.UTF8);

ОписаниеВерсии = ПрочитатьJSON(ЧтениеОписания, Ложь, , ФорматДатыJSON.ISO);

ЧтениеОписания.Закрыть();
ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя);

ФайлКонфигурации = Новый Файл(ОбъединитьПути(ТекФайл.Путь, "1cv8.cf"));

Expand Down
2 changes: 1 addition & 1 deletion src/Модули/ПараметрыПриложения.os
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
//
Функция Версия() Экспорт

Возврат "0.3.0";
Возврат "0.4.0";

КонецФункции // Версия()

Expand Down
Loading

0 comments on commit 8d81466

Please sign in to comment.