Skip to content

Commit b225262

Browse files
committed
Сервисные файлы
1 parent 139c9ea commit b225262

File tree

8 files changed

+262
-0
lines changed

8 files changed

+262
-0
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
bdd-log*.xml
2+
bin/*
3+
tests.xml
4+
*.ospx
5+
6+
coverage/*

.travis.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
sudo: required
2+
language: generic
3+
4+
notifications:
5+
email: false
6+
env:
7+
global:
8+
- CHANNEL=dev
9+
- PACKAGE_NAME=xml-parser
10+
matrix:
11+
- OSCRIPT_VERSION=1_0_19
12+
- OSCRIPT_VERSION=1_0_20
13+
- OSCRIPT_VERSION=night-build
14+
matrix:
15+
allow_failures:
16+
- env: OSCRIPT_VERSION=night-build
17+
18+
services:
19+
- docker
20+
21+
addons:
22+
sonarqube: true
23+
24+
jdk:
25+
- oraclejdk8
26+
27+
before_install:
28+
# Load cached docker images
29+
- if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi
30+
31+
before_cache:
32+
# Save tagged docker images
33+
- >
34+
mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
35+
| xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'
36+
37+
install:
38+
- docker pull evilbeaver/onescript:1.0.19
39+
40+
script:
41+
- docker version
42+
- 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
43+
- grep 'Результат прогона тестов <Да>' /tmp/test.log
44+
after_success:
45+
- bash <(curl -s https://codecov.io/bash) -f coverage/coverage.json
46+
- ./sonar-qube.sh
47+
48+
cache:
49+
directories:
50+
- '$HOME/.m2/repository'
51+
- '$HOME/.sonar/cache'
52+
- '$HOME/docker'
53+
jobs:
54+
include:
55+
- stage: Сборка и публикация github & hub.oscript.io
56+
script: skip
57+
before_deploy:
58+
- docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm build ./ ; exit'
59+
deploy:
60+
- provider: releases
61+
api_key: "$GITHUB_OAUTH_TOKEN"
62+
file_glob: true
63+
file: $PACKAGE_NAME*.ospx
64+
skip_cleanup: true
65+
on:
66+
branch: master
67+
tags: true
68+
- provider: script
69+
skip_cleanup: true
70+
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'
71+
on:
72+
branch: develop
73+
- provider: script
74+
skip_cleanup: true
75+
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'
76+
on:
77+
branch: master
78+
tags: true

sonar-project.properties

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# must be unique in a given SonarQube instance
2+
sonar.projectKey=opensource-oscript-xml-parser
3+
sonar.organization=sonar-opensource-add
4+
5+
# this is the name displayed in the SonarQube UI
6+
sonar.projectName=XML parser tool for OScript
7+
8+
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
9+
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
10+
# If not set, SonarQube starts looking for source code from the directory containing
11+
# the sonar-project.properties file.
12+
13+
sonar.sources=./src
14+
15+
# Encoding of the source code. Default is default system encoding
16+
sonar.sourceEncoding=UTF-8
17+
18+
sonar.coverageReportPaths=coverage/genericCoverage.xml

sonar-qube.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
temp=`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`
2+
version=${temp##*|}
3+
4+
if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
5+
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
6+
sonar-scanner \
7+
-Dsonar.host.url=https://sonar.silverbulleters.org \
8+
-Dsonar.analysis.mode=issues \
9+
-Dsonar.github.pullRequest=$TRAVIS_PULL_REQUEST \
10+
-Dsonar.github.repository=$TRAVIS_REPO_SLUG \
11+
-Dsonar.github.oauth=$GITHUB_OAUTH_TOKEN \
12+
-Dsonar.login=$SONAR_TOKEN \
13+
-Dsonar.scanner.skip=false
14+
15+
elif [ "$TRAVIS_BRANCH" == "develop" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
16+
sonar-scanner \
17+
-Dsonar.host.url=https://sonar.silverbulleters.org \
18+
-Dsonar.login=$SONAR_TOKEN \
19+
-Dsonar.projectVersion=$version\
20+
-Dsonar.scanner.skip=false
21+
fi
22+
fi

sonarlint.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/silverbulleters/sonarqube-inject-vsc/master/schemas/sonarlint.json",
3+
"serverId": "SB",
4+
"projectKey": "opensource-cli"
5+
}

tasks/coverage.os

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#Использовать "../src"
2+
#Использовать 1commands
3+
#Использовать coverage
4+
#Использовать fs
5+
6+
ФС.ОбеспечитьПустойКаталог("coverage");
7+
ПутьКСтат = "coverage/stat.json";
8+
9+
Команда = Новый Команда;
10+
Команда.УстановитьКоманду("oscript");
11+
Команда.ДобавитьПараметр("-encoding=utf-8");
12+
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
13+
Команда.ДобавитьПараметр("tasks/test.os");
14+
Команда.ПоказыватьВыводНемедленно(Истина);
15+
16+
КодВозврата = Команда.Исполнить();
17+
18+
Файл_Стат = Новый Файл(ПутьКСтат);
19+
20+
ИмяПакета = "ххх";
21+
22+
ПроцессорГенерации = Новый ГенераторОтчетаПокрытия();
23+
24+
ПроцессорГенерации.ОтносительныеПути()
25+
.ФайлСтатистики(Файл_Стат.ПолноеИмя)
26+
.GenericCoverage()
27+
.Cobertura()
28+
.Clover(ИмяПакета)
29+
.Сформировать();
30+
31+
ЗавершитьРаботу(КодВозврата);

tasks/test.os

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#Использовать "../src"
2+
#Использовать 1bdd
3+
#Использовать 1testrunner
4+
5+
Функция ПрогнатьТесты()
6+
7+
Тестер = Новый Тестер;
8+
9+
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
10+
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
11+
12+
КаталогТестов = Новый Файл(ПутьКТестам);
13+
Если Не КаталогТестов.Существует() Тогда
14+
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
15+
Возврат Истина;
16+
КонецЕсли;
17+
18+
РезультатТестирования = Тестер.ТестироватьКаталог(
19+
КаталогТестов,
20+
Новый Файл(ПутьКОтчетуJUnit)
21+
);
22+
23+
Успешно = РезультатТестирования = 0;
24+
25+
Возврат Успешно;
26+
КонецФункции // ПрогнатьТесты()
27+
28+
Функция ПрогнатьФичи()
29+
30+
ПутьОтчетаJUnit = "./bdd-log.xml";
31+
32+
КаталогФич = ОбъединитьПути(".", "features");
33+
34+
Файл_КаталогФич = Новый Файл(КаталогФич);
35+
Если Не Файл_КаталогФич.Существует() Тогда
36+
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
37+
Возврат Истина;
38+
КонецЕсли;
39+
40+
ИсполнительБДД = Новый ИсполнительБДД;
41+
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
42+
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
43+
44+
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
45+
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
46+
47+
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
48+
49+
КонецЕсли;
50+
51+
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
52+
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
53+
54+
Сообщить(СтрШаблон("Результат прогона фич <%1>
55+
|", ИтоговыйРезультатВыполнения));
56+
57+
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
58+
КонецФункции // ПрогнатьФичи()
59+
60+
ТестыПрошли = Истина;
61+
62+
Попытка
63+
ТестыПрошли = ПрогнатьТесты();
64+
65+
Исключение
66+
ТестыПрошли = Ложь;
67+
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
68+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
69+
КонецПопытки;
70+
71+
ФичиПрошли = Истина;
72+
73+
Попытка
74+
ФичиПрошли = ПрогнатьФичи();
75+
Исключение
76+
ФичиПрошли = Ложь;
77+
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
78+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
79+
КонецПопытки;
80+
81+
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
82+
ВызватьИсключение "Тестирование завершилось неудачно!";
83+
Иначе
84+
Сообщить(СтрШаблон("Результат прогона тестов <%1>
85+
|", ТестыПрошли));
86+
КонецЕсли;

travis-ci.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
3+
set -e
4+
echo "Устанавливаю версию OScript <$OSCRIPT_VERSION>"
5+
curl http://oscript.io/downloads/$OSCRIPT_VERSION/deb > oscript.deb
6+
dpkg -i oscript.deb
7+
rm -f oscript.deb
8+
9+
opm install 1testrunner;
10+
opm install 1bdd;
11+
opm install notify
12+
opm install;
13+
14+
opm run coverage;
15+
16+

0 commit comments

Comments
 (0)