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:
commit
4d81030689
@ -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"
|
||||
Тогда я вижу в консоли вывод "Нет доступных сценариев обработки файлов"
|
||||
|
||||
|
62
fixtures/localscenario/ДобавлениеHelloWorld.os
Normal file
62
fixtures/localscenario/ДобавлениеHelloWorld.os
Normal file
@ -0,0 +1,62 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Служебный модуль с реализацией сценариев обработки файлов <ИмяСценария>
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
Перем Лог;
|
||||
|
||||
// ИмяСценария
|
||||
// Возвращает имя сценария обработки файлов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Имя текущего сценария обработки файлов
|
||||
//
|
||||
Функция ИмяСценария() Экспорт
|
||||
|
||||
Возврат "ПроверкаДублейПроцедурИФункций";
|
||||
|
||||
КонецФункции // ИмяСценария()
|
||||
|
||||
// ОбработатьФайл
|
||||
// Выполняет обработку файла
|
||||
//
|
||||
// Параметры:
|
||||
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// * Лог - Объект - Текущий лог
|
||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
||||
// и которые необходимо дообработать
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак выполненной обработки файла
|
||||
//
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
ДобавитьПриветМир(АнализируемыйФайл.ПолноеИмя);
|
||||
Возврат Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Процедура ДобавитьПриветМир(ПутьКФайлуМодуля)
|
||||
|
||||
Текст = Новый ЗаписьТекста();
|
||||
Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM);
|
||||
|
||||
ТекстМодуля = Текст.ЗаписатьСтроку("HelloWorld", Символы.ПС);
|
||||
Текст.Закрыть();
|
||||
|
||||
КонецПроцедуры
|
13
fixtures/v8config.json
Normal file
13
fixtures/v8config.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"Precommt4onecСценарии": {
|
||||
"ИспользоватьСценарииРепозитория": true,
|
||||
"КаталогЛокальныхСценариев": "localscenario",
|
||||
"ГлобальныеСценарии": [],
|
||||
"НастройкиСценариев": {
|
||||
"РазборОтчетовОбработокРасширений": {
|
||||
"ИспользоватьНастройкиПоУмолчанию": true,
|
||||
"ВерсияПлатформы": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -197,7 +197,6 @@
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||
|
||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||
|
Loading…
x
Reference in New Issue
Block a user