1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-01-18 02:58:35 +02:00

Merge branch 'feature/ONECICD-80' into 'develop'

Feature/onecicd 80

See merge request orais/precommit1C-fork-bia!4
This commit is contained in:
Maximov Valery 2019-03-25 10:07:47 +03:00
commit 4d81030689
4 changed files with 100 additions and 2 deletions

View File

@ -7,12 +7,14 @@
Контекст:
Допустим Я очищаю параметры команды "oscript" в контексте
И я очищаю параметры команды "git" в контексте
И я включаю отладку лога с именем "oscript.app.precommit4onec"
И я создаю временный каталог и запоминаю его как "КаталогРепозиториев"
И я переключаюсь во временный каталог "КаталогРепозиториев"
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1"
И я установил рабочий каталог как текущий каталог
Сценарий: Разбор отчетов, обработок, конфигурации на исходники.
Когда Я копирую файл "tests/fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
И я копирую файл "tests/fixtures/demo/DemoОтчет.erf" в каталог репозитория "РабочийКаталог"
@ -58,3 +60,25 @@
И Я выполняю команду "git" с параметрами "add --all"
И Я выполняю команду "git" с параметрами "commit -m addProcedure"
Тогда Вывод команды "git" содержит "обнаружены неуникальные имена методов"
Сценарий: Прекоммит использует локальные настройки репозитория вместо глобальных
Когда Я копирую каталог "localscenario" из каталога "fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "fixtures" проекта в рабочий каталог
И я выполняю команду "git" с параметрами "add --all"
И я выполняю команду "git" с параметрами "commit -m addFile"
Тогда я вижу в консоли вывод "Используем локальные настройки"
Сценарий: Выполнение локальных сценариев к каталоге репозитория
Когда Я копирую файл "features/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
И Я копирую каталог "localscenario" из каталога "fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "fixtures" проекта в рабочий каталог
И я выполняю команду "git" с параметрами "add --all"
И я выполняю команду "git" с параметрами "commit -m addFile"
Тогда я вижу в консоли вывод "ДобавлениеHelloWorld"
Сценарий: Когда выключены глобальные сценарии и нет локальных прекоммит выдает ошибку
Когда Я копирую файл "v8config.json" из каталога "fixtures" проекта в рабочий каталог
И я выполняю команду "git" с параметрами "add --all"
И я выполняю команду "git" с параметрами "commit -m addFile"
Тогда я вижу в консоли вывод "Нет доступных сценариев обработки файлов"

View File

@ -0,0 +1,62 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией сценариев обработки файлов <ИмяСценария>
//
///////////////////////////////////////////////////////////////////////////////
Перем Лог;
// ИмяСценария
// Возвращает имя сценария обработки файлов
//
// Возвращаемое значение:
// Строка - Имя текущего сценария обработки файлов
//
Функция ИмяСценария() Экспорт
Возврат "ПроверкаДублейПроцедурИФункций";
КонецФункции // ИмяСценария()
// ОбработатьФайл
// Выполняет обработку файла
//
// Параметры:
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
// * Лог - Объект - Текущий лог
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
// * КаталогРепозитория - Строка - Адрес каталога репозитория
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
// и которые необходимо дообработать
//
// Возвращаемое значение:
// Булево - Признак выполненной обработки файла
//
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
ДобавитьПриветМир(АнализируемыйФайл.ПолноеИмя);
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции // ОбработатьФайл()
Процедура ДобавитьПриветМир(ПутьКФайлуМодуля)
Текст = Новый ЗаписьТекста();
Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM);
ТекстМодуля = Текст.ЗаписатьСтроку("HelloWorld", Символы.ПС);
Текст.Закрыть();
КонецПроцедуры

13
fixtures/v8config.json Normal file
View File

@ -0,0 +1,13 @@
{
"Precommt4onecСценарии": {
"ИспользоватьСценарииРепозитория": true,
"КаталогЛокальныхСценариев": "localscenario",
"ГлобальныеСценарии": [],
"НастройкиСценариев": {
"РазборОтчетовОбработокРасширений": {
"ИспользоватьНастройкиПоУмолчанию": true,
"ВерсияПлатформы": ""
}
}
}
}

View File

@ -197,7 +197,6 @@
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);