Skip to content

Commit 779ab59

Browse files
committed
Merge branch 'release/1.0.0' into develop
2 parents 88bfdc3 + 2477ce2 commit 779ab59

File tree

4 files changed

+182
-1
lines changed

4 files changed

+182
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tests.xml
2+
*.ospx

Jenkinsfile

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
2+
pipeline {
3+
agent none
4+
options {
5+
buildDiscarder(logRotator(numToKeepStr: '7'))
6+
skipDefaultCheckout()
7+
}
8+
9+
stages {
10+
stage('Тестирование кода пакета WIN') {
11+
12+
agent { label 'windows' }
13+
14+
steps {
15+
checkout scm
16+
17+
script {
18+
if( fileExists ('tasks/test.os') ){
19+
bat 'chcp 65001 > nul && oscript tasks/test.os'
20+
if( fileExists ('tests.xml') ){
21+
junit 'tests.xml'
22+
}
23+
if( fileExists ('bdd-log.xml') ){
24+
junit 'bdd-log.xml'
25+
}
26+
}
27+
else
28+
echo 'no testing task'
29+
}
30+
31+
}
32+
33+
}
34+
35+
stage('Тестирование кода пакета LINUX') {
36+
37+
agent { label 'master' }
38+
39+
steps {
40+
echo 'under development'
41+
}
42+
43+
}
44+
45+
stage('Сборка пакета') {
46+
47+
agent { label 'windows' }
48+
49+
steps {
50+
checkout scm
51+
52+
bat 'erase /Q *.ospx'
53+
bat 'chcp 65001 > nul && call opm build .'
54+
55+
stash includes: '*.ospx', name: 'package'
56+
archiveArtifacts '*.ospx'
57+
}
58+
59+
}
60+
61+
stage('Публикация в хабе') {
62+
when {
63+
branch 'master'
64+
}
65+
agent { label 'master' }
66+
steps {
67+
sh 'rm -f *.ospx'
68+
unstash 'package'
69+
70+
sh '''
71+
artifact=`ls -1 *.ospx`
72+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
73+
cp $artifact $basename.ospx
74+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/download/$basename/
75+
'''.stripIndent()
76+
}
77+
}
78+
79+
stage('Публикация в нестабильном хабе') {
80+
when {
81+
branch 'develop'
82+
}
83+
agent { label 'master' }
84+
steps {
85+
sh 'rm -f *.ospx'
86+
unstash 'package'
87+
88+
sh '''
89+
artifact=`ls -1 *.ospx`
90+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
91+
cp $artifact $basename.ospx
92+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/dev-channel/$basename/
93+
'''.stripIndent()
94+
}
95+
}
96+
}
97+
}

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("json")
3-
.Версия("0.2.1")
3+
.Версия("1.0.0")
44
.ВключитьФайл("src")
55
.ВключитьФайл("tests")
66
.ВключитьФайл("lib.config")

tasks/test.os

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#Использовать ".."
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+
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
66+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
67+
КонецПопытки;
68+
69+
Попытка
70+
ФичиПрошли = ПрогнатьФичи();
71+
Исключение
72+
ФичиПрошли = Ложь;
73+
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
74+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
75+
КонецПопытки;
76+
77+
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
78+
ВызватьИсключение "Тестирование завершилось неудачно!";
79+
Иначе
80+
Сообщить(СтрШаблон("Результат прогона тестов <%1>
81+
|", ТестыПрошли));
82+
КонецЕсли;

0 commit comments

Comments
 (0)