Skip to content
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
a6c3db3
Начало работы с поддержкой плагинов
khorevaa Nov 17, 2017
73e7963
Пробная версия работы с плагинами
khorevaa Nov 17, 2017
785a9b7
Merge branch 'develop' into feature/add-plugns-support
khorevaa Nov 17, 2017
1030ad6
Альфа вариант работы с плагинами.
khorevaa Nov 17, 2017
a00ddba
Реализовал 3 плагина и простые тесты к ним.
khorevaa Nov 17, 2017
11ae9e0
Изменения процедура ПрочитатьИзХранилищаИсториюКоммитовСАвторами для …
khorevaa Nov 17, 2017
9389176
Переработал класс управления Плагинами, добавил новые подписки на доб…
khorevaa Nov 20, 2017
4d691bc
Проработка плагинов. Добавлны новые плагины push, pull. Старые чутка …
khorevaa Nov 21, 2017
6ac5c36
Рефакторинг процедуры
khorevaa Nov 21, 2017
2a2ca76
Переместил СинхронизироватьХранилищеКонфигурацийСГит и удалил Разложи…
khorevaa Nov 22, 2017
3f241b8
Удалил ВыполнитьGitPull - не используется
khorevaa Nov 22, 2017
2ac2752
Убрал не правильный контекст плагина
khorevaa Nov 22, 2017
35026d5
удалил ВыполнитьGitPush - не используется
khorevaa Nov 22, 2017
0aa41b0
Заменил ОчиститьЦелевойКаталогВыгрузки на ОчиститьКаталогРабочейКопии
khorevaa Nov 22, 2017
1bf9368
Удалили ОчиститьЦелевойКаталогВыгрузки - не используется
khorevaa Nov 22, 2017
48bfc94
Удалил РазложитьМодули1СПоПапкамСогласноИерархииМетаданных
khorevaa Nov 22, 2017
49212d2
удалил РазобратьФайлКонфигурации
khorevaa Nov 22, 2017
6550119
удалил ВыгрузитьМодулиКонфигурации
khorevaa Nov 22, 2017
341d256
Добавил область ОБРАБОТКА ВЕРСИИ КОНФИГУРАЦИИ
khorevaa Nov 22, 2017
7f01404
Удалил очистки каталога сборки после вызова конфигуратора
khorevaa Nov 22, 2017
a81f11e
Добавил удаление временных файлов после команд конфигуратора
khorevaa Nov 22, 2017
24283bc
Перенес функциональность в выгрузки штатными средствами в плагин
khorevaa Nov 22, 2017
3b5c92a
2 новых точки для плагинов
khorevaa Nov 22, 2017
7795913
Скорректировал область конфигуратора
khorevaa Nov 22, 2017
aa6b4bd
Команда КлонироватьРепозиторий переведена на ГитРепозиторий
khorevaa Nov 22, 2017
ab93e3a
Переведана процедура ИнициализироватьРепозитарий на ГитРепозиторий
khorevaa Nov 22, 2017
772969c
Переведена процедура ПроверитьНаличиеРепозитарияГит на ГитРепозиторий
khorevaa Nov 22, 2017
62fa5d1
Убрал лишний СтрШаблон
khorevaa Nov 22, 2017
1b1e13a
Сделал области и навел порядок
khorevaa Nov 22, 2017
c1b0275
Исправил мелкие баги, и опечатки в наименованиях
khorevaa Nov 22, 2017
c587909
Сформировал области и добавил не хватающие обработчики
khorevaa Nov 22, 2017
a5ff72d
Добавил экспорт - где забыл
khorevaa Nov 22, 2017
135fb65
Скорректировал багу с подключением плагинов. Добавил плагин process-f…
khorevaa Nov 22, 2017
7ec5029
Корректировка тестов для плагина limit
khorevaa Nov 22, 2017
eb4ea9c
Добавлены тесты на плагины process-fatform-modules и increment. Испра…
khorevaa Nov 22, 2017
7549038
Добавил шаг, с добавлением не полного файла AUTHORS
khorevaa Nov 22, 2017
bbcf702
Плагин vendorUpload + Тесты к нему.
khorevaa Nov 22, 2017
43af0c6
Убран лишний мусор в тестах.. (из-за плагинов)
khorevaa Nov 22, 2017
e171934
Удалена процедура ВыполнитьЭкспортИсходников не используется
khorevaa Nov 22, 2017
c991e50
Исправлена опечатка
khorevaa Nov 22, 2017
8fbe1b0
Убраны комментарии
khorevaa Nov 22, 2017
fd0a41e
Убраны все параметры процедур, что ушли в плагины
khorevaa Nov 22, 2017
254f4e0
Совместный тест 2-х плагинов
khorevaa Nov 22, 2017
1c03710
Данные тесты нужны переехали в bdd
khorevaa Nov 22, 2017
1a7a7e2
Добавлены метки экспорта для тестирования. Скорректированы тесты
khorevaa Nov 22, 2017
ec1c5a5
Исправления по результатам тестов
khorevaa Nov 22, 2017
6fb5983
Переименование названия функциональностей
khorevaa Nov 22, 2017
06639c3
Скорректирован путь поиска плагинов. На более правильный
khorevaa Nov 23, 2017
46a9529
Корректировка передачи относительных путей на linux. Получение в пере…
khorevaa Nov 23, 2017
fc5c71f
Чутка отладочного сообщения
khorevaa Nov 23, 2017
fe05fe0
Переписан плагин инкременатльной выгрузки.
khorevaa Nov 23, 2017
ac33ace
Убрал лишнюю отладку.
khorevaa Nov 23, 2017
40f502b
Merge remote-tracking branch 'upstream/develop' into feature/add-plug…
khorevaa Nov 23, 2017
690bc24
Убрал лишние проблемы и табы.
khorevaa Nov 23, 2017
dec7464
Починил знатную багу!!! Чтобы никто больше не наступал!!! -v ставитс…
khorevaa Nov 23, 2017
eecb0d9
Плагин disableSupport снятия конфигурации с поддержки перед выгрузкой…
khorevaa Nov 23, 2017
7bf9c2d
Оптимизировал запись переименований.
khorevaa Nov 23, 2017
c3a762d
Записываем только те переименования, которые требуется. А не все. Уме…
khorevaa Nov 23, 2017
755e4a7
Корректировка определения формата выгрузки...
khorevaa Nov 23, 2017
350cdc5
Изменена раскладка логирования плагина
khorevaa Nov 24, 2017
09675ed
Удалил функцию СобратьКоманднуюСтроку - нигде не используется
khorevaa Nov 24, 2017
81264e0
Исправление ошибок плагина check-comments
khorevaa Nov 24, 2017
b9d7e8d
Исправление ошибки функции "ПереместитьФайл" заменена на 2 функции
khorevaa Nov 24, 2017
14c1621
Немного прекрасного.
khorevaa Nov 24, 2017
c6de3e9
Убрал лишее в плагинах
khorevaa Nov 24, 2017
7bf6fe7
Доработанана команда all под работу с плагинами
khorevaa Nov 24, 2017
ba82a47
Немного красоты в плагине и сброс настроек при пакетной работе.
khorevaa Nov 24, 2017
87bf8a5
Установил зависимость от delegate версии 0.2.0
khorevaa Nov 27, 2017
b110196
Поправил пример конфига, для пакетной синхронизации.
khorevaa Nov 27, 2017
95219bf
Добавил процедуру ПриПолученииПараметров
khorevaa Nov 27, 2017
fe84171
Изменил вывоз команды sync. Теперь вызывает аналогично команде, а не …
khorevaa Nov 27, 2017
5750737
Добавлен вывоз процедуры ПриПолученииПараметров
khorevaa Nov 27, 2017
96f1a99
Чтська плагинов. И убрал лишние неспользуемые вызовы
khorevaa Nov 27, 2017
2584902
Merge remote-tracking branch 'upstream/develop' into feature/add-plug…
khorevaa Nov 27, 2017
eff6bd3
Привел в порядок плаагины,
khorevaa Nov 27, 2017
ed6607f
Исправление тестов для команды -all
khorevaa Nov 27, 2017
1106c43
Рефакторинг плагина. Добавли получение версии из исходников.
khorevaa Nov 30, 2017
99c7560
Убрал лишний пуш, если нет новых коммитов
khorevaa Nov 30, 2017
04c8dea
Добавлена функциональность по получению таблицы истории версий с испо…
khorevaa Nov 30, 2017
f1b5ef7
Тест работы получения ТаблицыВерсий через 1С. Предприятие
khorevaa Nov 30, 2017
5ed2328
Скорректировано наимнование логов по всем плагинам.
khorevaa Nov 30, 2017
21fe1d9
Добавлена зависимость от библиотеке v8storage 0.6.4
khorevaa Nov 30, 2017
bb86832
Убрал сообщения о вывода команды
khorevaa Nov 30, 2017
17eefaf
Повысил зависимость от v8runner
khorevaa Nov 30, 2017
c6f59e5
Убрал получение полного пути, т.к. хранилище может быть и по http
khorevaa Nov 30, 2017
22dd737
Убрал комментарий
khorevaa Nov 30, 2017
fc05280
Пофиксил знатный баг.. Инкрементальной выгрузки
khorevaa Nov 30, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions features/gitsync-plugins.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# language: ru

Функционал: Инициализация каталога исходников конфигурации
Как Пользователь
Я хочу выполнять автоматическую синхронизацию конфигурации из хранилища
Чтобы автоматизировать свою работы с хранилищем с git

Контекст: Тестовый контекст
Когда Я очищаю параметры команды "gitsync" в контексте
И Я создаю новый объект ГитРепозиторий
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
И Я добавляю параметр "sync" для команды "gitsync"
И Я создаю временный каталог и сохраняю его в контекст
И я скопировал каталог тестового хранилища конфигурации во временный каталог
И Я сохраняю значение временного каталога в переменной "КаталогХранилища1С"
И Я создаю временный каталог и сохраняю его в контекст
И Я сохраняю значение временного каталога в переменной "ПутьКаталогаИсходников"
И Я создаю тестовой файл AUTHORS
И Я записываю "0" в файл VERSION
И Я создаю временный каталог и сохраняю его в контекст
И Я инициализирую bare репозиторий во временном каталоге
И Я сохраняю значение временного каталога в переменной "URLРепозитория"
И я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория"
И я включаю отладку лога с именем "oscript.app.gitsync"
И я включаю отладку лога с именем "oscript.app.gitsync-plugins"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "URLРепозитория"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"

Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина auto-set-tag
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-limit 1" для команды "gitsync"
И Я добавляю параметр "-plugins auto-set-tags" для команды "gitsync"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0

Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина check-authors
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-limit 1" для команды "gitsync"
И Я добавляю параметр "-plugins check-authors" для команды "gitsync"
И Я создаю неполный тестовой файл AUTHORS
И Я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 7), которые не сопоставлены в AUTHORS"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 1

Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина stop-if-empty-comment
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-limit 5" для команды "gitsync"
И Я добавляю параметр "-plugins stop-if-empty-comment" для команды "gitsync"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 1
2 changes: 2 additions & 0 deletions features/step_definitions/gitsync-sync.os
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
ВсеШаги.Добавить("ЯДобавляюПараметрДляКомандыИзПеременной");
ВсеШаги.Добавить("ЯДобавляюПараметрыДляКоманды");
ВсеШаги.Добавить("ЯСоздаюНеполныйТестовойФайлAuthors");
ВсеШаги.Добавить("ЯСоздаюНовыйОбъектГитрепозиторий");


Возврат ВсеШаги;
КонецФункции
Expand Down
59 changes: 59 additions & 0 deletions src/buldle-plugins/auto-set-tags.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#Использовать logos

Перем ВерсияПлагина;
Перем Лог;

Перем ПоследнняяВерсияКонфигурации;
Перем НоваяМетка;

Функция Информация() Экспорт

Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог)

КонецФункции // Информация() Экспорт

Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт

СтрокаТекущейВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии");
ОтправитьНовыеМетки = Ложь;
Если СтрокаТекущейВерсии <> Неопределено Тогда
ПоследнняяВерсияКонфигурации = СтрокаТекущейВерсии.Тэг;
КонецЕсли;

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

Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия, КонтекстПлагина) Экспорт

НоваяМетка = "";
Если ПоследнняяВерсияКонфигурации <> СтрокаВерсии.Тэг Тогда
ОтправитьНовыеМетки = Истина;
Лог.Информация("Определена новая версия конфигурации: %1 будет установлен новый тэг", СтрокаВерсии.Тэг);
НоваяМетка = СтрокаВерсии.Тэг;
ПоследнняяВерсияКонфигурации = НоваяМетка;
КонецЕсли;

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

Процедура ПослеКоммита(ГитРепозиторий, КаталогРабочейКопии, КонтекстПлагина) Экспорт

Если ЗначениеЗаполнено(НоваяМетка) Тогда
ПараметрыКоманды = Новый Массив;
ПараметрыКоманды.Добавить("tag");
ПараметрыКоманды.Добавить(Строка(НоваяМетка));

ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);

КонецЕсли;

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


Процедура Инициализация()

ВерсияПлагина = "1.0.0";
Лог = Логирование.ПолучитьЛог("auto-set-tags");
ПоследнняяВерсияКонфигурации = Неопределено;

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

Инициализация();
72 changes: 72 additions & 0 deletions src/buldle-plugins/check-authors.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#Использовать logos

Перем ВерсияПлагина;
Перем Лог;

Перем МассивНомеровВерсий;

Функция Информация() Экспорт

Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог)

КонецФункции // Информация() Экспорт

Процедура ПослеПолученияТаблицыВерсий(ТаблицаИсторииХранилища, ПутьКХранилищу, КаталогРабочейКопии, КонтекстПлагина) Экспорт

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

МассивНомеровВерсий = новый Массив;

Для Каждого Строка Из ТаблицаИсторииХранилища Цикл

СтрокаПользователя = ТаблицаСопоставления.Найти(строка.Автор, "Автор");
Если СтрокаПользователя = Неопределено Тогда

МассивНомеровВерсий.Добавить(Строка.НомерВерсии);

КонецЕсли;

КонецЦикла;

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

Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт

КоличествоВерсий = 0;

Для Каждого СтрокаВерсии из ТаблицаИсторииХранилища Цикл

Если СтрокаВерсии.НомерВерсии < ТекущаяВерсия Тогда
Продолжить;
КонецЕсли;

Если МассивНомеровВерсий.Найти(СтрокаВерсии.НомерВерсии) > 0 Тогда

Лог.Отладка("Проверяю строку: "+ СтрокаВерсии.НомерВерсии);
СтрокаОшибки = СтрШаблон("Нашли версию <%1>, а автор <%2> не сопоставлен пользователь git.", СтрокаВерсии.НомерВерсии, СтрокаВерсии.Автор);
Лог.КритичнаяОшибка(СтрокаОшибки);
КоличествоВерсий = КоличествоВерсий +1;
КонецЕсли;

КонецЦикла;

Если КоличествоВерсий > 0 Тогда

СтрокаОшибки = СтрШаблон("В таблице истории версий найдены авторы (количество %1), которые не сопоставлены в AUTHORS",КоличествоВерсий);

ВызватьИсключение СтрокаОшибки;

КонецЕсли;

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

Процедура Инициализация()

ВерсияПлагина = "1.0.0";
Лог = Логирование.ПолучитьЛог("check-authors");

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

Инициализация();
36 changes: 36 additions & 0 deletions src/buldle-plugins/stop-if-empty-comment.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#Использовать logos

Перем ВерсияПлагина;
Перем Лог;

Перем МассивНомеровВерсий;

Функция Информация() Экспорт

Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог)

КонецФункции // Информация() Экспорт

Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт


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

Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия, КонтекстПлагина) Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixel2007 Зацени, как методы-обработчики выглядят красиво с делегатами, в отличие от Оповещений 1С :)


Если ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
СтрокаОшибки = СтрШаблон("Нашли следующую версию <%1> от автора <%2>, а комментарий не задан!", СледующаяВерсия, СтрокаВерсии.Автор);
Лог.КритичнаяОшибка(СтрокаОшибки);
ВызватьИсключение СтрокаОшибки;
КонецЕсли;

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

Процедура Инициализация()

ВерсияПлагина = "1.0.0";
Лог = Логирование.ПолучитьЛог("stop-if-empty-comment");

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

Инициализация();
Loading