Skip to content

Commit

Permalink
Начальное заполнение либы
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa committed Feb 6, 2019
1 parent 234556d commit da3d77e
Show file tree
Hide file tree
Showing 6 changed files with 240 additions and 0 deletions.
79 changes: 79 additions & 0 deletions .travis.yml
@@ -0,0 +1,79 @@
sudo: required
language: generic

notifications:
email: false
env:
global:
- CHANNEL=dev
- PACKAGE_NAME=1connector
matrix:
- OSCRIPT_VERSION=1_0_18
- OSCRIPT_VERSION=1_0_19
- OSCRIPT_VERSION=1_0_20
- OSCRIPT_VERSION=night-build
matrix:
allow_failures:
- env: OSCRIPT_VERSION=night-build

services:
- docker

addons:
sonarqube: true

jdk:
- oraclejdk8

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

script:
- docker version
- docker run -it -e OSCRIPT_VERSION=$OSCRIPT_VERSION -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)
- ./sonar-qube.sh

cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'
- '$HOME/docker'
jobs:
include:
- 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: $PACKAGE_NAME*.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 ./$PACKAGE_NAME-*.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 ./$PACKAGE_NAME-*.ospx; exit'
on:
branch: master
tags: true
1 change: 1 addition & 0 deletions docs/README.md
@@ -0,0 +1 @@
# В РАЗРАБОТКЕ
25 changes: 25 additions & 0 deletions features/build.feature
@@ -0,0 +1,25 @@
# language: ru

Функционал: Проверка сборки продукта
Как Пользователь
Я хочу автоматически проверять сборку моего продукта
Чтобы гарантировать возможность установку моего продукта у пользователей

Контекст: Отключение отладки в логах
Допустим Я выключаю отладку лога с именем "oscript.lib.ххх"
И Я очищаю параметры команды "opm" в контексте

Сценарий: Выполнение команды без параметров
Когда Я добавляю параметр "build ." для команды "opm"
И Я выполняю команду "opm"
Тогда Вывод команды "opm" содержит "Сборка пакета завершена"
И Вывод команды "opm" не содержит "Внешнее исключение"
И Код возврата команды "opm" равен 0

Сценарий: Сборка независимого приложения
Когда Я добавляю параметр "build" для команды "opm"
И Я добавляю параметр "." для команды "opm"
И Я выполняю команду "opm"
Тогда Вывод команды "opm" содержит "Сборка пакета завершена"
И Вывод команды "opm" не содержит "Внешнее исключение"
И Код возврата команды "opm" равен 0
32 changes: 32 additions & 0 deletions tasks/coverage.os
@@ -0,0 +1,32 @@
#Использовать "../src"
#Использовать 1commands
#Использовать fs
#Использовать coverage


ФС.ОбеспечитьПустойКаталог("coverage");
ПутьКСтат = "coverage/stat.json";

Команда = Новый Команда;
Команда.УстановитьКоманду("oscript");
Команда.ДобавитьПараметр("-encoding=utf-8");
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
Команда.ДобавитьПараметр("tasks/test.os");
Команда.ПоказыватьВыводНемедленно(Истина);

КодВозврата = Команда.Исполнить();

Файл_Стат = Новый Файл(ПутьКСтат);

ИмяПакета = "1connector";

ПроцессорГенерации = Новый ГенераторОтчетаПокрытия();

ПроцессорГенерации.ОтносительныеПути()
.ФайлСтатистики(Файл_Стат.ПолноеИмя)
.GenericCoverage()
.Cobertura()
.Clover(ИмяПакета)
.Сформировать();

ЗавершитьРаботу(КодВозврата);
86 changes: 86 additions & 0 deletions tasks/test.os
@@ -0,0 +1,86 @@
#Использовать "../src"
#Использовать 1bdd
#Использовать 1testrunner

Функция ПрогнатьТесты()

Тестер = Новый Тестер;

ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");

КаталогТестов = Новый Файл(ПутьКТестам);
Если Не КаталогТестов.Существует() Тогда
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
Возврат Истина;
КонецЕсли;

РезультатТестирования = Тестер.ТестироватьКаталог(
КаталогТестов,
Новый Файл(ПутьКОтчетуJUnit)
);

Успешно = РезультатТестирования = 0;

Возврат Успешно;
КонецФункции // ПрогнатьТесты()

Функция ПрогнатьФичи()

ПутьОтчетаJUnit = "./bdd-log.xml";

КаталогФич = ОбъединитьПути(".", "features");

Файл_КаталогФич = Новый Файл(КаталогФич);
Если Не Файл_КаталогФич.Существует() Тогда
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
Возврат Истина;
КонецЕсли;

ИсполнительБДД = Новый ИсполнительБДД;
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда

СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

КонецЕсли;

ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);

Сообщить(СтрШаблон("Результат прогона фич <%1>
|", ИтоговыйРезультатВыполнения));

Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
КонецФункции // ПрогнатьФичи()

ТестыПрошли = Истина;

Попытка
ТестыПрошли = ПрогнатьТесты();

Исключение
ТестыПрошли = Ложь;
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

ФичиПрошли = Истина;

Попытка
ФичиПрошли = ПрогнатьФичи();
Исключение
ФичиПрошли = Ложь;
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

Если Не ТестыПрошли Или Не ФичиПрошли Тогда
ВызватьИсключение "Тестирование завершилось неудачно!";
Иначе
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|", ТестыПрошли));
КонецЕсли;
17 changes: 17 additions & 0 deletions travis-ci.sh
@@ -0,0 +1,17 @@


set -e
echo "Устанавливаю версию OScript <$OSCRIPT_VERSION>"
curl http://oscript.io/downloads/$OSCRIPT_VERSION/deb > oscript.deb
dpkg -i oscript.deb
rm -f oscript.deb

opm install 1testrunner;
opm install 1bdd;
opm install notify;
opm install coverage;
opm install;

opm run coverage;


0 comments on commit da3d77e

Please sign in to comment.