Skip to content

Commit

Permalink
Merge branch 'release/1.3.0'
Browse files Browse the repository at this point in the history
# Conflicts:
#	readme.md
  • Loading branch information
artbear committed Nov 14, 2017
2 parents 414fa22 + 50e4374 commit 6d71a00
Show file tree
Hide file tree
Showing 13 changed files with 454 additions and 29 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
exec.log
bdd-log.xml
*.ospx
coverage/
94 changes: 94 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@

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 allowEmptyResults: true, testResults: 'tests.xml'
junit allowEmptyResults: true, testResults: '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 appveyor-runtests.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ set OSCRIPT=%ProgramFiles(x86)%\OneScript
@echo .

@rem call 1bdd features -junit-out ./bdd-log.xml
@call opm test
@call oscript tasks/test.os

@if %ERRORLEVEL%==2 GOTO good_exit_bdd
@if %ERRORLEVEL%==0 GOTO good_exit_bdd
Expand Down
36 changes: 36 additions & 0 deletions features/step_definitions/ВыполнениеКоманды.os
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
ВсеШаги.Добавить("ЯУстанавливаюОжидаемыйДиапазонКодовВозвратаОтДоДляКоманды");
ВсеШаги.Добавить("ЯУстанавливаюПериодОпросаЗавершенияКомандыВМиллисекунду");
ВсеШаги.Добавить("ЯСнимаюФлагПоказаНемедленногоВыводаКоманды");
ВсеШаги.Добавить("ЯПодключаюВыводКомандыВЛог");
ВсеШаги.Добавить("ЯПодключаюВыводВФайлДляЛога");
ВсеШаги.Добавить("ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды");

Возврат ВсеШаги;
КонецФункции
Expand Down Expand Up @@ -89,6 +92,13 @@
Команда.ПоказыватьВыводНемедленно(Ложь);
КонецПроцедуры

//Я устанавливаю флаг показа немедленного вывода команды "oscript"
Процедура ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды(Знач ИмяИлиТекстКоманды) Экспорт
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);

Команда.ПоказыватьВыводНемедленно(Истина);
КонецПроцедуры

//Я добавляю параметры для команды "oscript"
//| -version |
//| -encoding=utf-8 |
Expand All @@ -101,8 +111,34 @@
Команда.ДобавитьПараметры(МассивПараметров);
КонецПроцедуры

//Я подключаю вывод команды "oscript" в лог "ТестовыйЛог"
Процедура ЯПодключаюВыводКомандыВЛог(Знач ИмяИлиТекстКоманды, Знач ИмяЛога) Экспорт
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);
Команда.ДобавитьЛогВыводаКоманды(ИмяЛога);

НовыйЛог = Логирование.ПолучитьЛог(ИмяЛога);
НовыйЛог.УстановитьРаскладку(ЭтотОбъект);
КонецПроцедуры

//Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог"
Процедура ЯПодключаюВыводВФайлДляЛога(Знач ПутьФайла, Знач ИмяЛога) Экспорт
НовыйЛог = Логирование.ПолучитьЛог(ИмяЛога);

ФайлЖурнала = Новый ВыводЛогаВФайл;
ФайлЖурнала.ОткрытьФайл(ПутьФайла);

НовыйЛог.ДобавитьСпособВывода(ФайлЖурнала);

КонецПроцедуры

// { Служебные функции

Функция Форматировать(Знач Уровень, Знач Сообщение) Экспорт

Возврат СтрШаблон("ФИЧА ВыполнениеКоманды: %1 - %2", УровниЛога.НаименованиеУровня(Уровень), Сообщение);

КонецФункции

Процедура ВыполнитьКоманду(Знач ИмяИлиТекстКоманды, Знач ИспользуемКомандныйПроцессор = Истина)
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);
Команда.УстановитьИсполнениеЧерезКомандыСистемы(ИспользуемКомандныйПроцессор);
Expand Down
95 changes: 88 additions & 7 deletions features/step_definitions/КомандныеФайлы.os
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
#Использовать "../.."

Перем БДД; //контекст фреймворка 1bdd
Перем ЭтоWindows;
Перем ПропускаюВЛинукс;

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
Expand All @@ -10,11 +12,14 @@
ВсеШаги = Новый Массив;

ВсеШаги.Добавить("ЯСоздаюКомандныйФайл");
ВсеШаги.Добавить("ЯСоздаюКомандныйФайлPowerShell");
ВсеШаги.Добавить("ЯДобавляюСтрокуВКомандныйФайл");
ВсеШаги.Добавить("ЯСообщаюСодержимоеКомандногоФайла");
ВсеШаги.Добавить("ЯВыполняюКомандныйФайл");
ВсеШаги.Добавить("ВыводКомандногоФайлаСодержит");
ВсеШаги.Добавить("КодВозвратаКомандногоФайлаРавен");
ВсеШаги.Добавить("ЯУстанавливаюПриложениеЗапуска");
ВсеШаги.Добавить("ЯПропускаюЭтотСценарийВЛинукс");

Возврат ВсеШаги;
КонецФункции
Expand All @@ -23,7 +28,7 @@

// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт

ПропускаюВЛинукс = Ложь;
КонецПроцедуры

// Процедура выполняется после завершения каждого сценария
Expand All @@ -33,32 +38,64 @@

//Я создаю командный файл
Процедура ЯСоздаюКомандныйФайл() Экспорт
КомандныйФайл = Новый КомандныйФайл;
КомандныйФайл.Создать();
БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл);
СоздатьФайл();
КонецПроцедуры

// Я пропускаю этот сценарий в Линукс
Процедура ЯПропускаюЭтотСценарийВЛинукс() Экспорт
ПропускаюВЛинукс = Истина;
КонецПроцедуры

//Я создаю командный файл PowerShell "" ".ps1"
Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

СоздатьФайл(Путь,Расширение);
КонецПроцедуры

//я добавляю строку "echo командный файл" в командный файл
Процедура ЯДобавляюСтрокуВКомандныйФайл(Знач СтрокаКоманды) Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");

КомандныйФайл.ДобавитьКоманду(СтрокаКоманды);
КонецПроцедуры

//Я выполняю командный файл
Процедура ЯВыполняюКомандныйФайл() Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");

КомандныйФайл.Исполнить();
КонецПроцедуры

//Я сообщаю содержимое файла "ИмяФайла"
Процедура ЯСообщаюСодержимоеФайла(Знач ИмяФайла) Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

ВывестиТекстФайла(ИмяФайла);
КонецПроцедуры

//Я сообщаю содержимое командного файла
Процедура ЯСообщаюСодержимоеКомандногоФайла() Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;
КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");

ТекстФайла = КомандныйФайл.ПолучитьТекстФайла();
Expand All @@ -67,6 +104,11 @@

//Вывод командного файла содержит "командный файл"
Процедура ВыводКомандногоФайлаСодержит(Знач ОжидаемыйВыводКоманды) Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");

ВыводКоманды = КомандныйФайл.ПолучитьВывод();
Expand All @@ -75,27 +117,66 @@

//Код возврата командного файла равен 0
Процедура КодВозвратаКомандногоФайлаРавен(Знач ОжидаемыйКодВозврата) Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");

Ожидаем.Что(КомандныйФайл.ПолучитьКодВозврата(), "Код возврата").Равно(ОжидаемыйКодВозврата);
КонецПроцедуры

//Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт
Если ПропускаюШагВЛинукс() Тогда
БДД.ВыполнитьШаг("Пропускаю шаг в Linux");
Возврат;
КонецЕсли;

КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");
Если КомандныйФайл=Неопределено Тогда
КомандныйФайл = Новый КомандныйФайл;
КонецЕсли;
КомандныйФайл.УстановитьПриложение(ПутьПриложения);
БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл);
КонецПроцедуры


Процедура ВывестиТекстФайла(Знач ИмяФайла, Знач Кодировка = Неопределено)

Файл = Новый Файл(ИмяФайла);
Если НЕ Файл.Существует() Тогда
Возврат;
КонецЕсли;

Если Кодировка = Неопределено Тогда
Кодировка = "utf-8";
КонецЕсли;

ЧТ = Новый ЧтениеТекста(ИмяФайла, Кодировка);
СтрокаФайла = ЧТ.Прочитать();
ЧТ.Закрыть();

Сообщить(СтрокаФайла);

КонецПроцедуры

Процедура СоздатьФайл(Знач Путь="", Знач Расширение="")
КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл");
Если КомандныйФайл=Неопределено Тогда
КомандныйФайл = Новый КомандныйФайл;
КонецЕсли;

КомандныйФайл.Создать(Путь,Расширение);
БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл);
КонецПроцедуры

Функция ПропускаюШагВЛинукс()
Если ЭтоWindows = Неопределено Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
КонецЕсли;

Возврат ПропускаюВЛинукс И НЕ ЭтоWindows;
КонецФункции // ЭтоWindows()
Loading

0 comments on commit 6d71a00

Please sign in to comment.