Skip to content

Commit

Permalink
Merge branch 'release/v.0.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Jun 17, 2020
2 parents 918d27a + ff4140e commit fb2abd1
Show file tree
Hide file tree
Showing 7 changed files with 280 additions and 1 deletion.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
.vscode
tmp*
tmp*
coverage
test-reports
*.ospx
26 changes: 26 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
sudo: required
dist: trusty
addons:
sonarqube: true
jdk:
- openjdk11
before_install:
- chmod +x travis.sh
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
- echo "deb http://download.mono-project.com/repo/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list
- sudo apt-get update
- sudo apt-get install mono-complete mono-devel dos2unix
- wget -O os.deb http://oscript.io/downloads/latest/x64/deb
- sudo dpkg -i os.deb; sudo apt install -f
- oscript
install:
- sudo opm install
- sudo opm install 1testrunner
- sudo opm install v8runner

cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'
script:
- ./travis.sh
20 changes: 20 additions & 0 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# must be unique in a given SonarQube instance
sonar.projectKey=yard

# this is the name displayed in the SonarQube UI
sonar.projectName=yard

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.

sonar.sources=./src
sonar.tests=./tests

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

sonar.coverageReportPaths=coverage/genericCoverage.xml

sonar.testExecutionReportPaths=test-reports/tests.xml
74 changes: 74 additions & 0 deletions tasks/coverage.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#Использовать 1commands
#Использовать asserts
#Использовать fs
#Использовать json

СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

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

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

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

Файл_Стат = Новый Файл(ПутьКСтат);
Ожидаем.Что(Файл_Стат.Существует(),
СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина();

ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8);

СтрокаJSON = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();

Парсер = Новый ПарсерJSON();
ДанныеПокрытия = Парсер.ПрочитатьJSON(СтрокаJSON);

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("coverage/genericCoverage.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("coverage");
ЗаписьXML.ЗаписатьАтрибут("version", "1");

Для Каждого Файл Из ДанныеПокрытия Цикл

ДанныеФайла = Файл.Значение;

ЗаписьXML.ЗаписатьНачалоЭлемента("file");
ЗаписьXML.ЗаписатьАтрибут("path", ДанныеФайла.Получить("#path"));

Для Каждого КлючИЗначение Из ДанныеФайла Цикл

Если КлючИЗначение.Ключ = "#path" Тогда
Продолжить;
КонецЕсли;

ДанныеПроцедуры = КлючИЗначение.Значение;
Для Каждого ДанныеСтроки Из ДанныеПроцедуры Цикл

ЗаписьXML.ЗаписатьНачалоЭлемента("lineToCover");

ЗаписьXML.ЗаписатьАтрибут("lineNumber", ДанныеСтроки.Ключ);
Покрыто = Число(ДанныеСтроки.Значение.Получить("count")) > 0;
ЗаписьXML.ЗаписатьАтрибут("covered", Формат(Покрыто, "БИ=true; БЛ=false"));

ЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover
КонецЦикла;
КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // file

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // coverage
ЗаписьXML.Закрыть();

ЗавершитьРаботу(КодВозврата);
22 changes: 22 additions & 0 deletions tasks/test.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#Использовать 1testrunner

Процедура ПровестиТестирование()

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

КаталогПроекта = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
КаталогРезультатовТестов = Новый Файл(ОбъединитьПути(КаталогПроекта, "test-reports"));
Если Не КаталогРезультатовТестов.Существует() Тогда
СоздатьКаталог(КаталогРезультатовТестов.ПолноеИмя);
КонецЕсли;

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

Тестер.УстановитьФорматЛогФайла(Тестер.ФорматыЛогФайла().GenericExec);

Тестер.ТестироватьКаталог(КаталогТестов, ФайлРезультатовТестовПакета);

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

ПровестиТестирование();
100 changes: 100 additions & 0 deletions tests/yard-test.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
// ----------------------------------------------------------
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v.2.0. If a copy of the MPL
// was not distributed with this file, You can obtain one
// at http://mozilla.org/MPL/2.0/.
// ----------------------------------------------------------
// Codebase: https://github.com/ArKuznetsov/yabr.os/
// ----------------------------------------------------------

#Использовать "../src"
#Использовать asserts
#Использовать fs
#Использовать tempfiles

Перем ЮнитТест;
Перем ВременныйКаталог;

Перем Лог;

// Процедура выполняется после запуска теста
//
Процедура ПередЗапускомТеста() Экспорт

Лог = ПараметрыПриложения.Лог();
Лог.УстановитьУровень(УровниЛога.Информация);

КонецПроцедуры // ПередЗапускомТеста()

// Функция возвращает список тестов для выполнения
//
// Параметры:
// Тестирование - Тестер - Объект Тестер (1testrunner)
//
// Возвращаемое значение:
// Массив - Массив имен процедур-тестов
//
Функция ПолучитьСписокТестов(Тестирование) Экспорт

ЮнитТест = Тестирование;

СписокТестов = Новый Массив;
СписокТестов.Добавить("ТестДолжен_СписокПриложенийСВерсиямиССайта1С");
СписокТестов.Добавить("ТестДолжен_ЗагрузитьВерсииПриложения");
СписокТестов.Добавить("ТестДолжен_РаспаковатьВерсииПриложения");

Возврат СписокТестов;

КонецФункции // ПолучитьСписокТестов()

// Процедура выполняется после запуска теста
//
Процедура ПослеЗапускаТеста() Экспорт

КонецПроцедуры // ПослеЗапускаТеста()

// Процедура - тест
//
Процедура ТестДолжен_СписокПриложенийСВерсиямиССайта1С() Экспорт

Пользователь = ПолучитьПеременнуюСреды("YARD_RELEASES_USER");
Пароль = ПолучитьПеременнуюСреды("YARD_RELEASES_PWD");

Лог.Информация(Пользователь);

ПараметрыОбработки = Новый Структура();
ПараметрыОбработки.Вставить("ИмяПользователя", Пользователь);

ПараметрыОбработки.Вставить("ПарольПользователя", Пароль);
ПараметрыОбработки.Вставить("ФильтрПриложений", "Библиотека стандартных подсистем.*3\.1");
ПараметрыОбработки.Вставить("ФильтрВерсий", "3\.1\.3.*");
// ПараметрыОбработки.Вставить("ФильтрВерсийНачинаяСДаты");
// ПараметрыОбработки.Вставить("ФильтрВерсийДоДаты");
// ПараметрыОбработки.Вставить("ПутьКФайлуДляСохранения");

СписокРелизов = Новый СписокРелизов1С();
СписокРелизов.УстановитьПараметрыОбработкиДанных(ПараметрыОбработки);
СписокРелизов.ОбработатьДанные();

Утверждения.ПроверитьБольшеИлиРавно(СписокРелизов.РезультатОбработки().Количество(),
1,
"Не удалось получить список релизов.");

КонецПроцедуры // ТестДолжен_СписокПриложенийСВерсиямиССайта1С()

// Процедура - тест
//
Процедура ТестДолжен_ЗагрузитьВерсииПриложения() Экспорт

ВызватьИсключение "Не реализовано";

КонецПроцедуры // ТестДолжен_ЗагрузитьВерсииПриложения()

// Процедура - тест
//
Процедура ТестДолжен_РаспаковатьВерсииПриложения() Экспорт

ВызватьИсключение "Не реализовано";


КонецПроцедуры // ТестДолжен_РаспаковатьВерсииПриложения()
34 changes: 34 additions & 0 deletions travis.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

#!/bin/bash
set -e

sudo opm run coverage

temp=`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`
version=${temp##*|}

if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
sonar-scanner \
-Dsonar.host.url=$SONAR_HOST \
-Dsonar.analysis.mode=issues \
-Dsonar.github.pullRequest=$TRAVIS_PULL_REQUEST \
-Dsonar.github.repository=$TRAVIS_REPO_SLUG \
-Dsonar.github.oauth=$SONAR_GITHUB_TOKEN \
-Dsonar.login=$SONAR_TOKEN \
-Dsonar.scm.enabled=true \
-Dsonar.scm.provider=git \
-Dsonar.scanner.skip=false \
-Dsonar.branch.name=master

elif [ "$TRAVIS_BRANCH" == "develop" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
sonar-scanner \
-Dsonar.host.url=$SONAR_HOST \
-Dsonar.login=$SONAR_TOKEN \
-Dsonar.projectVersion=$version \
-Dsonar.scm.enabled=true \
-Dsonar.scm.provider=git \
-Dsonar.scanner.skip=false \
-Dsonar.branch.name=master
fi
fi

0 comments on commit fb2abd1

Please sign in to comment.