-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
46 changed files
with
1,100 additions
and
579 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,10 @@ | ||
oscript_modules/ | ||
test-reports/ | ||
coverage/ | ||
oscript_modules/* | ||
tests-reports/* | ||
coverage/* | ||
bdd-*.xml | ||
*.ospx | ||
src/oscript.cfg | ||
|
||
src/cmd/oscript\.cfg | ||
exec.log | ||
test-reports/tests.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,77 @@ | ||
sudo: required | ||
language: generic | ||
|
||
dist: trusty | ||
notifications: | ||
email: false | ||
env: | ||
global: | ||
- CHANNEL=dev | ||
- PACKAGE_NAME=opm | ||
matrix: | ||
- OSCRIPT_VERSION=1_0_20 | ||
- OSCRIPT_VERSION=night-build | ||
matrix: | ||
allow_failures: | ||
- env: OSCRIPT_VERSION=night-build | ||
|
||
addons: | ||
sonarqube: true | ||
services: | ||
- docker | ||
|
||
addons: | ||
sonarqube: true | ||
|
||
jdk: | ||
- oraclejdk8 | ||
|
||
before_install: | ||
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF | ||
- echo "deb http://download.mono-project.com/repo/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list | ||
- sudo apt-get update | ||
- sudo apt-get install mono-complete mono-devel | ||
- wget -O os.deb http://oscript.io/downloads/night-build/deb | ||
- sudo dpkg -i os.deb; sudo apt install -f | ||
- oscript | ||
- sudo opm install 1testrunner | ||
- sudo opm install 1bdd | ||
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: | ||
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install -l | ||
- docker pull evilbeaver/onescript:1.0.19 | ||
|
||
script: | ||
- docker version | ||
- docker run -it -e OSCRIPT_VERSION=$OSCRIPT_VERSION -v $(pwd):/work_dir evilbeaver/onescript:1.0.20 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) | ||
- ./sonar-qube.sh | ||
|
||
cache: | ||
directories: | ||
- '$HOME/.m2/repository' | ||
- '$HOME/.sonar/cache' | ||
|
||
script: | ||
- ./travis.sh | ||
- '$HOME/docker' | ||
jobs: | ||
include: | ||
- stage: Сборка и публикация github & hub.oscript.io | ||
script: skip | ||
before_deploy: | ||
- docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.20 sh -c 'cd /work_dir; opm build ./ ; exit' | ||
deploy: | ||
- provider: releases | ||
api_key: "$GITHUB_OAUTH_TOKEN" | ||
file_glob: true | ||
file: $PACKAGE_NAME*.ospx | ||
skip_cleanup: true | ||
on: | ||
branch: master | ||
tags: true | ||
- provider: script | ||
skip_cleanup: true | ||
script: docker run -it -e GITHUB_OAUTH_TOKEN=$GITHUB_OAUTH_TOKEN -v $(pwd):/work_dir evilbeaver/onescript:1.0.20 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./$PACKAGE_NAME-*.ospx; exit' | ||
on: | ||
branch: develop | ||
- provider: script | ||
skip_cleanup: true | ||
script: docker run -it -e GITHUB_OAUTH_TOKEN=$GITHUB_OAUTH_TOKEN -v $(pwd):/work_dir evilbeaver/onescript:1.0.20 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./$PACKAGE_NAME-*.ospx; exit' | ||
on: | ||
branch: master | ||
tags: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# language: ru | ||
|
||
Функциональность: Настройки продукта | ||
|
||
Как разработчик | ||
Я хочу иметь устанавливать пакет из файла | ||
Чтобы иметь возможность проверять локальные версии пакетов | ||
|
||
|
||
Контекст: Тестовый контекст | ||
Допустим Я очищаю параметры команды "opm" в контексте | ||
И Я устанавливаю путь выполнения команды "opm" к текущей библиотеке | ||
И Я создаю временный каталог и сохраняю его в переменной "КаталогСборкиПакета" | ||
И Я создаю временный каталог и сохраняю его в переменной "РабочийКаталог" | ||
И Я выполняю сборку пакета "fixtures/testpackage" в каталог из переменной "КаталогСборкиПакета" | ||
И Я сохраняю файл пакета из каталога "КаталогСборкиПакета" в переменную "ИмяФайлаПакета" | ||
|
||
Сценарий: Установка пакета из файла в локальный каталог | ||
Допустим Я установил рабочий каталог из переменной "РабочийКаталог" | ||
И Я добавляю параметр "install" для команды "opm" | ||
И Я добавляю параметр "--local" для команды "opm" | ||
И Я добавляю опцию "-f" для команды "opm" из переменной "ИмяФайлаПакета" | ||
Когда Я выполняю команду "opm" | ||
Тогда Вывод команды "opm" содержит "ИНФОРМАЦИЯ - Установка завершена" | ||
И Вывод команды "opm" не содержит "Внешнее исключение" | ||
И Код возврата команды "opm" равен 0 | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules" | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules/test" | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules/test/opm-metadata.xml" | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules/test/folder" | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules/test/folder/src.os" | ||
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules/test/folder/src.dll" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# language: ru | ||
|
||
Функционал: Проверка сборки продукта | ||
Как Пользователь | ||
Я хочу автоматически проверять сборку моего продукта | ||
Чтобы гарантировать возможность установку моего продукта у пользователей | ||
|
||
Контекст: Отключение отладки в логах | ||
Допустим Я выключаю отладку лога с именем "oscript.lib.gitsync" | ||
И Я очищаю параметры команды "opm" в контексте | ||
|
||
Сценарий: Выполнение команды без параметров | ||
Когда Я добавляю параметр "build ." для команды "opm" | ||
И Я выполняю команду "opm" | ||
Тогда Вывод команды "opm" содержит "Сборка пакета завершена" | ||
И Вывод команды "opm" не содержит "Внешнее исключение" | ||
И Код возврата команды "opm" равен 0 | ||
|
||
Сценарий: Сборка, установка и выполнение пакета | ||
Допустим Я создаю временный каталог и сохраняю его в контекст | ||
Допустим Я собираю пакет во временном каталоге | ||
И Я устанавливаю временный каталог как рабочий каталог | ||
И Я установил рабочий каталог как текущий каталог | ||
Тогда каталог "oscript_modules" не существует | ||
Когда я устанавливаю пакет из файла собранного пакета | ||
Тогда файл "oscript_modules/opm/src/cmd/opm.os" существует | ||
Тогда я выполняю команду получения версии установленного пакета "oscript oscript_modules/opm/src/cmd/opm.os version" | ||
И версия установленного пакета равна версии пакета из контекста |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
// заглушка |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
// заглушка |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
| ||
Описание.Имя("test") | ||
.Версия("0.3.1") | ||
.ВключитьФайл("folder"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
|
||
Перем БДД; //контекст фреймворка 1bdd | ||
|
||
// Метод выдает список шагов, реализованных в данном файле-шагов | ||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
|
||
ВсеШаги.Добавить("ЯВыполняюСборкуПакетаВКаталогИзПеременной"); | ||
ВсеШаги.Добавить("ЯСохраняюФайлПакетаИзКаталогаВПеременную"); | ||
ВсеШаги.Добавить("ЯУстановилРабочийКаталогИзПеременной"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// Реализация шагов | ||
|
||
// Процедура выполняется перед запуском каждого сценария | ||
Процедура ПередЗапускомСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Процедура выполняется после завершения каждого сценария | ||
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
|
||
//Я выполняю сборку пакета "fixture/testpackage" в каталог из переменной "КаталогСборкиПакета" | ||
Процедура ЯВыполняюСборкуПакетаВКаталогИзПеременной(Знач ПутьКаталогуПакета, Знач ИмяПеременнойКаталогаСборки) Экспорт | ||
|
||
ПутьККаталогуПакета = ОбъединитьПути(ТекущийСценарий().Каталог, ПутьКаталогуПакета); | ||
|
||
КаталогСборкиПакета = БДД.ПолучитьИзКонтекста(ИмяПеременнойКаталогаСборки); | ||
|
||
СтрокаЗапуска = СтрШаблон("oscript ""%1"" build --out %2 %3", ПутьКИсполняемомуФайлу(), КаталогСборкиПакета, ПутьККаталогуПакета ); | ||
КодВозврата = ВыполнитьКоманду(СтрокаЗапуска); | ||
|
||
Ожидаем.Что(КодВозврата, | ||
"Ожидали, что сборка пакета (opm build) завершится с кодом возврата 0, а получили другое значение"). | ||
Равно(0); | ||
|
||
КонецПроцедуры | ||
|
||
|
||
//Я установил рабочий каталог из переменной "РабочийКаталог" | ||
Процедура ЯУстановилРабочийКаталогИзПеременной(Знач ИмяКаталога) Экспорт | ||
РабочийКаталог = БДД.ПолучитьИзКонтекста(ИмяКаталога); | ||
|
||
УстановитьТекущийКаталог(РабочийКаталог); | ||
|
||
КонецПроцедуры | ||
|
||
//Я сохраняю файл пакета из каталога "КаталогСборкиПакета" в переменную "ИмяФайлаПакета" | ||
Процедура ЯСохраняюФайлПакетаИзКаталогаВПеременную(Знач ИмяПеременнойКаталога, Знач ИмяПеременнойФайла) Экспорт | ||
ПутьВременногоКаталога = БДД.ПолучитьИзКонтекста(ИмяПеременнойКаталога); | ||
МассивФайлов = НайтиФайлы(ПутьВременногоКаталога, "*.ospx", Ложь); | ||
Ожидаем.Что(МассивФайлов.Количество(), "Должны были найти только 1 собранный пакет, а не несколько").Равно(1); | ||
ФайлПакета = МассивФайлов[0]; | ||
БДД.СохранитьВКонтекст(ИмяПеременнойФайла, ФайлПакета.ПолноеИмя); | ||
|
||
КонецПроцедуры | ||
|
||
Функция ВыполнитьКоманду(Знач СтрокаКоманды, ТекстВывода = "") | ||
Команда = Новый Команда; | ||
Команда.ПоказыватьВыводНемедленно(Истина); | ||
|
||
Команда.УстановитьСтрокуЗапуска(СтрокаКоманды); | ||
|
||
КодВозврата = Команда.Исполнить(); | ||
ТекстВывода = Команда.ПолучитьВывод(); | ||
|
||
Если КодВозврата <> 0 Тогда | ||
// Лог.Информация(ТекстВывода); | ||
Сообщить(ТекстВывода); | ||
КонецЕсли; | ||
Возврат КодВозврата; | ||
КонецФункции | ||
|
||
Функция ПутьКИсполняемомуФайлу() | ||
|
||
Возврат ОбъединитьПути(КаталогБиблиотеки(), "src", "cmd", "opm.os"); | ||
|
||
КонецФункции | ||
|
||
Функция КаталогFixtures() | ||
Возврат ОбъединитьПути(КаталогБиблиотеки(), "tests", "fixtures"); | ||
КонецФункции | ||
|
||
Функция КаталогБиблиотеки() | ||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", ".."); | ||
КонецФункции |
Oops, something went wrong.