Skip to content

Commit

Permalink
Merge branch 'release/0.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Aug 26, 2017
2 parents f02681b + a553574 commit edad0df
Show file tree
Hide file tree
Showing 5 changed files with 171 additions and 20 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
bdd-log.xml
exec.log
tests.xml
*.ospx
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.associations": {
"jenkinsfile ": "groovy",
"packagedef" : "bsl"
},
"editor.rulers": [ 120 ]
Expand Down
93 changes: 93 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@

pipeline {
agent none
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
skipDefaultCheckout()
}

stages {
stage('Тестирование кода пакета WIN') {

agent { label 'windows' }

steps {
checkout scm

script {
if( fileExists ('tasks/test.os') ){
bat 'chcp 65001 > nul && oscript tasks/test.os'
junit 'tests.xml'
junit 'bdd-log.xml'
}
else
echo 'no testing task'
}

}

}

stage('Тестирование кода пакета LINUX') {

agent { label 'master' }

steps {
echo 'under development'
}

}

stage('Сборка пакета') {

agent { label 'windows' }

steps {
checkout scm

bat 'erase /Q *.ospx'
bat 'chcp 65001 > nul && call opm build .'

stash includes: '*.ospx', name: 'package'
archiveArtifacts '*.ospx'
}

}

stage('Публикация в хабе') {
when {
branch 'master'
}
agent { label 'master' }
steps {
sh 'rm -f *.ospx'
unstash 'package'

sh '''
artifact=`ls -1 *.ospx`
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
cp $artifact $basename.ospx
sudo rsync -rv *.ospx /var/www/hub.oscript.io/download/$basename/
'''.stripIndent()
}
}

stage('Публикация в нестабильном хабе') {
when {
branch 'develop'
}
agent { label 'master' }
steps {
sh 'rm -f *.ospx'
unstash 'package'

sh '''
artifact=`ls -1 *.ospx`
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
cp $artifact $basename.ospx
sudo rsync -rv *.ospx /var/www/hub.oscript.io/dev-channel/$basename/
'''.stripIndent()
}
}
}
}
2 changes: 1 addition & 1 deletion src/Модули/ПараметрыСистемы.os
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
//
Функция ВерсияПродукта() Экспорт

Возврат "0.2";
Возврат "0.3";

КонецФункции // ВерсияПродукта

Expand Down
91 changes: 72 additions & 19 deletions tasks/test.os
Original file line number Diff line number Diff line change
@@ -1,29 +1,82 @@
#Использовать ".."
#Использовать "../src"
#Использовать 1bdd
#Использовать 1testrunner

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

КаталогФич = ОбъединитьПути(".", "features");
Функция ПрогнатьТесты()
Тестер = Новый Тестер;

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

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

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

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

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

КонецЕсли;
ПутьОтчетаJUnit = "./bdd-log.xml";

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

Сообщить(ИтоговыйРезультатВыполнения);
Если ИтоговыйРезультатВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался Тогда

ВызватьИсключение 1;

Файл_КаталогФич = Новый Файл(КаталогФич);

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

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

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

КонецЕсли;

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

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

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

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

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

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

Если Не ТестыПрошли Или Не ФичиПрошли Тогда
ВызватьИсключение "Тестирование завершилось неудачно!";
Иначе
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|", ТестыПрошли));
КонецЕсли;

// Если РезультатТестирования <> 0 Тогда
// ВызватьИсключение РезультатТестирования;
// КонецЕсли;

// Если ИтоговыйРезультатВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался Тогда

// ВызватьИсключение 1;

// КонецЕсли;

0 comments on commit edad0df

Please sign in to comment.