From 7f04c605429f937597441c6d473914576f7f1700 Mon Sep 17 00:00:00 2001 From: sfaqer Date: Fri, 2 May 2025 10:33:02 +1000 Subject: [PATCH 1/2] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B5=20?= =?UTF-8?q?=D0=BC=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\320\222\320\265\321\200\321\201\320\270\320\270.os" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\222\320\265\321\200\321\201\320\270\320\270.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\222\320\265\321\200\321\201\320\270\320\270.os" index befce21..49a0746 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\222\320\265\321\200\321\201\320\270\320\270.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\222\320\265\321\200\321\201\320\270\320\270.os" @@ -46,7 +46,9 @@ Лог.Отладка("Выбираю максимум из [%1]", МассивВерсий.Количество()); Коллекция = ПроцессорыКоллекций.ИзКоллекции(МассивВерсий); - Результат = Коллекция.Максимум("Результат = Элемент1.Больше(Элемент2)"); + Результат = Коллекция.Максимум( + "(Элемент1, Элемент2) -> Элемент1.Сравнить(Элемент2)" + ); Возврат Результат; From c4770c78222043c41718b54c91cf44468a93ebfd Mon Sep 17 00:00:00 2001 From: sfaqer Date: Fri, 2 May 2025 17:48:58 +1000 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BD=D1=8F=D1=82=D0=B0?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BE=D1=82=20=D0=B4=D0=B2=D0=B8=D0=B6=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=D1=81=D1=82=D0=B8=20=D0=BE=D1=82=20fluent=20=D0=94?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20workflow=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D1=80=D0=B5=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=20=D0=A0=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=BF=D0=BE=D0=B4=D1=87=D0=B8=D1=89=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BE=D1=82=20=D0=BD=D0=B5=D0=B0=D0=BA=D1=82=D1=83=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D1=85=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 15 ++++++++ .github/workflows/testing.yml | 16 ++++++++ .gitignore | 3 ++ .travis.yml | 63 -------------------------------- VERSION | 1 - packagedef | 10 ++--- tasks/coverage.os | 32 ++++++++++++++++ tasks/oscript.cfg | 1 + tasks/test.os | 69 ++++++++--------------------------- travis-ci.sh | 8 ---- 10 files changed, 86 insertions(+), 132 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/testing.yml delete mode 100644 .travis.yml delete mode 100644 VERSION create mode 100644 tasks/coverage.os create mode 100644 tasks/oscript.cfg delete mode 100644 travis-ci.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f3f915e --- /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: "semver-*.ospx" + secrets: + PUSH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..6d5ed9f --- /dev/null +++ b/.github/workflows/testing.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/.gitignore b/.gitignore index 62869e8..b4be030 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ *.ospx tests.xml +oscript_modules/ +build/ +out/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 34f1503..0000000 --- a/.travis.yml +++ /dev/null @@ -1,63 +0,0 @@ -sudo: required - -notifications: - email: false -env: - global: - - CHANNEL=dev - -services: - - docker - -before_install: - # Load cached docker images - - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi - -before_cache: - # Save tagged docker images - - > - mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}' - | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz' - -install: - - docker pull evilbeaver/onescript:1.0.19 - -cache: - directories: - - '$HOME/.m2/repository' - - '$HOME/.sonar/cache' - - '$HOME/docker' -jobs: - include: - - stage: Тестирование - script: - - docker version - - docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit' | tee /tmp/test.log - - grep 'Результат прогона тестов <Да>' /tmp/test.log - after_success: - - bash <(curl -s https://codecov.io/bash) - - - stage: Сборка и публикация github & hub.oscript.io - script: skip - before_deploy: - - docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm build ./ ; exit' - deploy: - - provider: releases - api_key: "$GITHUB_OAUTH_TOKEN" - file_glob: true - file: semver*.ospx - skip_cleanup: true - on: - branch: master - tags: true - - provider: script - skip_cleanup: true - script: docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./semver-*.ospx; exit' - on: - branch: develop - - provider: script - skip_cleanup: true - script: docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./semver-*.ospx; exit' - on: - branch: master - tags: true \ No newline at end of file diff --git a/VERSION b/VERSION deleted file mode 100644 index 79a2734..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.5.0 \ No newline at end of file diff --git a/packagedef b/packagedef index 550f59b..5b1ad2c 100644 --- a/packagedef +++ b/packagedef @@ -4,22 +4,20 @@ // Описание.Имя("semver") - .Версия("0.5.2") + .Версия("0.6.0") .Автор("Khorev Aleksey") .АдресАвтора("Khorevaa@gmail.com") .Описание("Эта библиотека облегчает работу с семантическими версиями") - .ВерсияСреды("1.0.18") + .ВерсияСреды("1.9.2") .ВключитьФайл("src") .ВключитьФайл("doc") .ВключитьФайл("tests") .ЗависитОт("logos") .ЗависитОт("strings") - .ЗависитОт("fluent") - //.ЗависитОт("package3", ">=1.1", "<2.0") - //.ЗависитОт("package4", ">=1.1", "<2.0") + .ЗависитОт("fluent", "0.6.1") + .РазработкаЗависитОт("1testrunner", "1.9.2") .ОпределяетМодуль("Версии", "src/core/Модули/Версии.os") .ОпределяетКласс("Версия", "src/core/Классы/Версия.os") .ОпределяетКласс("ДиапазонВерсий", "src/core/Классы/ДиапазонВерсий.os") .ОпределяетКласс("СравнениеВерсий", "src/core/Классы/СравнениеВерсий.os") - //.ОпределяетМодуль("ПолезныеФункции", "src/tools.os") ; diff --git a/tasks/coverage.os b/tasks/coverage.os new file mode 100644 index 0000000..f5a6558 --- /dev/null +++ b/tasks/coverage.os @@ -0,0 +1,32 @@ +#Использовать coverage +#Использовать 1commands +#Использовать fs + +СистемнаяИнформация = Новый СистемнаяИнформация; +ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + +ФС.ОбеспечитьПустойКаталог(ОбъединитьПути("build", "coverage")); +ПутьКСтат = ОбъединитьПути("build", "coverage", "stat.json"); + +Команда = Новый Команда; +Команда.УстановитьКоманду("oscript"); +Если НЕ ЭтоWindows Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); +КонецЕсли; +Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); +Команда.ДобавитьПараметр(ОбъединитьПути("tasks", "test.os")); +Команда.ПоказыватьВыводНемедленно(Истина); + +КодВозврата = Команда.Исполнить(); + +ПроцессорГенерации = Новый ГенераторОтчетаПокрытия(); + +ПроцессорГенерации.ОтносительныеПути() + .РабочийКаталог(ОбъединитьПути("build", "coverage")) + .КаталогИсходников(ТекущийКаталог()) + .ИмяФайлаСтатистики() + .GenericCoverage() + .Cobertura() + .Сформировать(); + +ЗавершитьРаботу(КодВозврата); diff --git a/tasks/oscript.cfg b/tasks/oscript.cfg new file mode 100644 index 0000000..874f3d2 --- /dev/null +++ b/tasks/oscript.cfg @@ -0,0 +1 @@ +lib.system=../oscript_modules diff --git a/tasks/test.os b/tasks/test.os index 3edf7de..43bba03 100644 --- a/tasks/test.os +++ b/tasks/test.os @@ -1,84 +1,45 @@ -#Использовать "../src/core" -#Использовать 1bdd #Использовать 1testrunner +#Использовать fs Функция ПрогнатьТесты() - + Тестер = Новый Тестер; + Тестер.УстановитьФорматЛогФайла(Тестер.ФорматыЛогФайла().GenericExec); + Тестер.ПодробныеОписанияОшибок(Истина); - ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests"); - ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, ".."); + ПутьКТестам = "tests"; + ПутьКОтчетуJUnit = ОбъединитьПути("build", "testsResults"); - КаталогТестов = Новый Файл(ПутьКТестам); - Если Не КаталогТестов.Существует() Тогда - Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам)); - Возврат Истина; - КонецЕсли; + ФС.ОбеспечитьПустойКаталог(ПутьКОтчетуJUnit); РезультатТестирования = Тестер.ТестироватьКаталог( - КаталогТестов, + Новый Файл(ПутьКТестам), Новый Файл(ПутьКОтчетуJUnit) ); Успешно = РезультатТестирования = 0; - - Возврат Успешно; -КонецФункции // ПрогнатьТесты() - -Функция ПрогнатьФичи() - - ПутьОтчетаJUnit = "./bdd-log.xml"; - - КаталогФич = ОбъединитьПути(".", "features"); - - Файл_КаталогФич = Новый Файл(КаталогФич); - Если Не Файл_КаталогФич.Существует() Тогда - Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич)); - Возврат Истина; - КонецЕсли; - ИсполнительБДД = Новый ИсполнительБДД; - РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич); - ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); - - СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся; - Если РезультатыВыполнения.Строки.Количество() > 0 Тогда - - СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); - - КонецЕсли; + Возврат Успешно; - ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit; - ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit); +КонецФункции // ПрогнатьТесты() - Сообщить(СтрШаблон("Результат прогона фич <%1> - |", ИтоговыйРезультатВыполнения)); +// основной код - Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался; -КонецФункции // ПрогнатьФичи() +ТекКаталог = ТекущийКаталог(); Попытка ТестыПрошли = ПрогнатьТесты(); - Исключение ТестыПрошли = Ложь; Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); КонецПопытки; -ФичиПрошли = Истина; - -// Попытка -// ФичиПрошли = ПрогнатьФичи(); -// Исключение -// ФичиПрошли = Ложь; -// Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно -// |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); -// КонецПопытки; +УстановитьТекущийКаталог(ТекКаталог); -Если Не ТестыПрошли Или Не ФичиПрошли Тогда +Если Не ТестыПрошли Тогда ВызватьИсключение "Тестирование завершилось неудачно!"; Иначе Сообщить(СтрШаблон("Результат прогона тестов <%1> |", ТестыПрошли)); -КонецЕсли; \ No newline at end of file +КонецЕсли; diff --git a/travis-ci.sh b/travis-ci.sh deleted file mode 100644 index 8b8ad79..0000000 --- a/travis-ci.sh +++ /dev/null @@ -1,8 +0,0 @@ - -opm install 1testrunner; -opm install 1bdd; -opm install; - -opm test; - -