diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..0527e47 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,15 @@ +name: Публикация релиза + +on: + release: + types: + - published + workflow_dispatch: + +jobs: + release: + uses: autumn-library/workflows/.github/workflows/release.yml@main + with: + package_mask: "autumn-annotation-types-*.ospx" + secrets: + PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6d5ed9f --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,16 @@ +name: Тестирование + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + test: + strategy: + fail-fast: false + matrix: + oscript_version: ['dev', 'lts-dev', 'default'] + uses: autumn-library/workflows/.github/workflows/test.yml@main + with: + oscript_version: ${{ matrix.oscript_version }} \ No newline at end of file diff --git a/package-loader.os b/package-loader.os deleted file mode 100644 index fff9fba..0000000 --- a/package-loader.os +++ /dev/null @@ -1,108 +0,0 @@ -// Пояснения по переменным даны в конце модуля -Перем ПоказатьСообщенияЗагрузки; -Перем ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей; - -Перем КэшМодулей; - -Процедура ПриЗагрузкеБиблиотеки(Путь, СтандартнаяОбработка, Отказ) - Вывести(" - |ПриЗагрузкеБиблиотеки " + Путь); - - Если Осень <> Неопределено Тогда - ПутьДоЗаготовки = ОбъединитьПути(Путь, "src/Заготовки/ИнициализацияАннотацийТипов.os"); - ПодключитьСценарий(ПутьДоЗаготовки, "ИнициализацияАннотацийТипов"); - Осень.ДобавитьЗаготовкуДляАвтоИнициализации("ИнициализацияАннотацийТипов"); - - мКаталог = ОбъединитьПути(Путь, "src/Классы"); - ОбработатьКаталогКлассов(мКаталог, СтандартнаяОбработка, Отказ); - Иначе - ВызватьИсключение "Некорректный порядок импорта библиотек. Сначала подключите autumn"; - КонецЕсли; - -КонецПроцедуры - -Процедура ОбработатьКаталогКлассов(Знач Путь, СтандартнаяОбработка, Отказ) - - КаталогКлассов = Новый Файл(Путь); - - Если КаталогКлассов.Существует() Тогда - Файлы = НайтиФайлы(КаталогКлассов.ПолноеИмя, "*.os"); - Для Каждого Файл Из Файлы Цикл - Вывести(СтрШаблон(" класс (по соглашению) %1, файл %2", Файл.ИмяБезРасширения, Файл.ПолноеИмя)); - СтандартнаяОбработка = Ложь; - // ДобавитьКласс(Файл.ПолноеИмя, Файл.ИмяБезРасширения); - ДобавитьКлассЕслиРанееНеДобавляли(Файл.ПолноеИмя, Файл.ИмяБезРасширения); - КонецЦикла; - КонецЕсли; - -КонецПроцедуры - -Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса) - Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса); - Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда - Вывести("Добавляю класс " + ИмяКласса); - ДобавитьКласс(ПутьФайла, ИмяКласса); - Возврат; - КонецЕсли; - - КлассУжеЕсть = Ложь; - Попытка - Объект = Новый(ИмяКласса); - КлассУжеЕсть = Истина; - Исключение - СообщениеОшибки = ОписаниеОшибки(); - ИскомаяОшибка = СтрШаблон("Конструктор не найден (%1)", ИмяКласса); - КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0; - КонецПопытки; - Если Не КлассУжеЕсть Тогда - - Вывести("Добавляю класс, т.к. он не найден - " + ИмяКласса); - ДобавитьКласс(ПутьФайла, ИмяКласса); - - Иначе - Вывести("Пропускаю загрузку класса " + ИмяКласса); - - КонецЕсли; -КонецПроцедуры - -Процедура Вывести(Знач Сообщение) - Если ПоказатьСообщенияЗагрузки Тогда - Сообщить(Сообщение); - КонецЕсли; -КонецПроцедуры - -Функция ПолучитьБулевоИзПеременнойСреды(Знач ИмяПеременнойСреды, Знач ЗначениеПоУмолчанию) - Рез = ЗначениеПоУмолчанию; - РезИзСреды = ПолучитьПеременнуюСреды(ИмяПеременнойСреды); - Если ЗначениеЗаполнено(РезИзСреды) Тогда - РезИзСреды = СокрЛП(РезИзСреды); - Попытка - Рез = Число(РезИзСреды) <> 0 ; - Исключение - Рез = ЗначениеПоУмолчанию; - Сообщить(СтрШаблон("Неверный формат переменной среды %1. Ожидали 1 или 0, а получили %2", ИмяПеременнойСреды, РезИзСреды)); - КонецПопытки; - КонецЕсли; - - Возврат Рез; -КонецФункции - -// Если Истина, то выдаются подробные сообщения о порядке загрузке пакетов, классов, модулей, что помогает при анализе проблем -// очень полезно при анализе ошибок загрузки -// Переменная среды может принимать значение 0 (выключено) или 1 (включено) -// Значение флага по умолчанию - Ложь -ПоказатьСообщенияЗагрузки = ПолучитьБулевоИзПеременнойСреды( - "OSLIB_LOADER_TRACE", Ложь); - -// Если Ложь, то пропускаются ошибки повторной загрузки классов/модулей, -//что важно при разработке/тестировании стандартных библиотек -// Если Истина, то выдается ошибка при повторной загрузке классов библиотек из движка -// Переменная среды может принимать значение 0 (выключено) или 1 (включено) -// Значение флага по умолчанию - Истина -ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей = ПолучитьБулевоИзПеременнойСреды( - "OSLIB_LOADER_DUPLICATES", Ложь); - -// для установки других значений переменных среды и запуска скриптов можно юзать следующую командную строку -// (set OSLIB_LOADER_TRACE=1) && (oscript .\tasks\test.os) - -КэшМодулей = Новый Массив; diff --git a/packagedef b/packagedef index 190d00f..7f2d9b9 100644 --- a/packagedef +++ b/packagedef @@ -5,13 +5,14 @@ Описание.Имя("autumn-annotation-types") - .Версия("1.0.2") + .Версия("1.1.0") .Автор("nikita ivanchenko") .АдресАвтора("https://github.com/Nivanchenko") .Описание("Набор аннотаций ОСени, для удобной инициализации стандартных типов") - .ВерсияСреды("1.8.3") + .ВерсияСреды("1.9.2") .ВключитьФайл("src") - .ВключитьФайл("package-loader.os") - .ЗависитОт("autumn", "3.1.3") + + .ЗависитОт("autumn", "4.3.4") + .РазработкаЗависитОт("1testrunner") ; diff --git "a/src/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\270/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\271\320\242\320\270\320\277\320\276\320\262.os" "b/src/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\270/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\271\320\242\320\270\320\277\320\276\320\262.os" deleted file mode 100644 index 5d3c577..0000000 --- "a/src/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\270/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\271\320\242\320\270\320\277\320\276\320\262.os" +++ /dev/null @@ -1,11 +0,0 @@ - -Процедура ПриИнициализацииПоделки(Поделка) Экспорт - - КаталогМодуля = ОбъединитьПути(ТекущийСценарий().Каталог, "../Классы"); - Поделка.ПросканироватьКаталог(КаталогМодуля); - -КонецПроцедуры - -&Заготовка -Процедура ПриСозданииОбъекта() -КонецПроцедуры diff --git a/tasks/oscript.cfg b/tasks/oscript.cfg new file mode 100644 index 0000000..e4161cb --- /dev/null +++ b/tasks/oscript.cfg @@ -0,0 +1,2 @@ +lib.system=../oscript_modules +systemLanguage=ru diff --git a/tasks/test.os b/tasks/test.os index 10059c3..9148784 100644 --- a/tasks/test.os +++ b/tasks/test.os @@ -1,4 +1,3 @@ -#Использовать 1bdd #Использовать 1testrunner #Использовать fs @@ -21,35 +20,6 @@ Возврат Успешно; КонецФункции // ПрогнатьТесты() - -Функция ПрогнатьФичи() - - ПутьОтчетаJUnit = ОбъединитьПути(ТекущийКаталог(), "out", "bdd-log.xml"); - - КаталогФич = ОбъединитьПути(".", "features"); - - Файл_КаталогФич = Новый Файл(КаталогФич); - - ИсполнительБДД = Новый ИсполнительБДД; - РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич); - ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); - - СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся; - Если РезультатыВыполнения.Строки.Количество() > 0 Тогда - - СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); - - КонецЕсли; - - ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit; - ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit); - - Сообщить(СтрШаблон("Результат прогона фич <%1> - |", ИтоговыйРезультатВыполнения)); - - Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался; -КонецФункции // ПрогнатьФичи() - // основной код ТекКаталог = ТекущийКаталог(); @@ -64,19 +34,9 @@ УстановитьТекущийКаталог(ТекКаталог); -Попытка - ФичиПрошли = ПрогнатьФичи(); -Исключение - ФичиПрошли = Ложь; - Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно - |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); -КонецПопытки; - -Если Не ТестыПрошли Или Не ФичиПрошли Тогда +Если Не ТестыПрошли Тогда ВызватьИсключение "Тестирование завершилось неудачно!"; Иначе Сообщить(СтрШаблон("Результат прогона тестов <%1> |", ТестыПрошли)); - Сообщить(СтрШаблон("Результат прогона основных фич <%1> - |", ФичиПрошли)); КонецЕсли;