-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from yukon39/develop
Новая версия 0.4.0
- Loading branch information
Showing
10 changed files
with
360 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
pipeline { | ||
|
||
agent { | ||
// Используйте свою метку для ноды. | ||
// На ноде должны быть установлены EDT и сканер для SonarQube | ||
label 'edt' | ||
} | ||
|
||
environment { | ||
// Project specific | ||
DebuggerURL = 'http://localhost:1550' | ||
InfobaseName = 'coverage_test' | ||
ClusterName = 'localhost' | ||
SourcesPath = 'src/cf' | ||
SourcesFormat = 'XML' | ||
VBParams = 'VBParams.json' | ||
|
||
// Jenkins specific | ||
sonarTool = 'SonarQubeTool' | ||
sonarInstance = 'SonarQubeServer' | ||
|
||
// Different strokes for different folks | ||
CoverageTemp = '.coverage' | ||
} | ||
|
||
stages { | ||
|
||
stage('Подготовка рабочей области') { | ||
steps { | ||
dir(CoverageTemp) { deleteDir() } | ||
writeFile file: "${CoverageTemp}/dummy", text: 'dummy' | ||
writeFile file: "${CoverageTemp}/coverage/dummy", text: 'dummy' | ||
} | ||
} | ||
|
||
stage('Запуск сбора покрытия') { | ||
environment { | ||
commandArgs = [ | ||
"--infobase ${InfobaseName}", | ||
"--debugger ${DebuggerURL}", | ||
"--output ${CoverageTemp}/coverage.csv" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
coverage_cli("start", commandArgs) | ||
} | ||
|
||
post { | ||
success { | ||
sleep time: 15, unit: 'SECONDS' | ||
} | ||
} | ||
} | ||
|
||
stage('Тестирование проекта') { | ||
environment { | ||
commandArgs = [ | ||
"--ibconnection ${ibconnection()}", | ||
"--vanessasettings ${VBParams}", | ||
"--additional \"/DEBUG -http -attach /DEBUGGERURL ${DebuggerURL}\"" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { | ||
vrunner('vanessa', commandArgs) | ||
} | ||
} | ||
} | ||
|
||
stage('Остановка сбора покрытия') { | ||
steps { | ||
coverage_cli("stop", "") | ||
} | ||
} | ||
|
||
stage('Разбор результатов покрытия') { | ||
environment { | ||
commandArgs = [ | ||
"--input ${CoverageTemp}/coverage.csv", | ||
"--output ${CoverageTemp}/coverage/coverageTrue.json", | ||
"--sources ${SourcesPath}", | ||
"--format ${SourcesFormat}" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
coverage_cli("convert", commandArgs) | ||
} | ||
} | ||
|
||
// Если используется community плагин для SonarQube, то этот шаг можно отключить, | ||
// т.к. плагин самостоятельно реализует формирование строк покрытия | ||
// с использованием опции sonar.bsl.calculateLineCover=true | ||
stage('Получение строк для покрытия') { | ||
|
||
environment { | ||
commandArgs = [ | ||
"--sources ${SourcesPath}", | ||
"--output ${CoverageTemp}/coverage/coverageFalse.xml" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
coverage_cli("lines", commandArgs) | ||
} | ||
} | ||
|
||
stage('Формирование genericCoverage') { | ||
environment { | ||
commandArgs = [ | ||
"--input ${CoverageTemp}/coverage", | ||
"--output ${CoverageTemp}/genericCoverage.xml" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
coverage_cli("report", commandArgs) | ||
} | ||
} | ||
|
||
stage ('Запуск проверки SQ') { | ||
environment { | ||
scannerHome = tool sonarTool | ||
SONAR_SCANNER_OPTS = [ | ||
'-XX:+UseG1GC', | ||
'-XX:MaxGCPauseMillis=200', | ||
'-Dfile.encoding=UTF-8' | ||
].join(' ') | ||
|
||
commandArgs = [ | ||
"-Dsonar.coverageReportPaths=${CoverageTemp}/genericCoverage.xml" | ||
].join(' ') | ||
} | ||
|
||
steps { | ||
withSonarQubeEnv(installationName: sonarInstance) { | ||
sonar_scanner(scannerHome, commandArgs) | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
||
def ibconnection() { | ||
"/S${ClusterName}/${InfobaseName}" | ||
} | ||
|
||
def coverage_cli(command, commandArgs) { | ||
echo "coverage-cli ${command} ${commandArgs}" | ||
bat "@chcp 65001 >nul\n@coverage-cli ${command} ${commandArgs}" | ||
} | ||
|
||
def sonar_scanner(scannerHome, commandArgs) { | ||
echo "sonar-scanner.bat ${commandArgs}" | ||
bat "@chcp 65001 >nul\n@\"${scannerHome}/bin/sonar-scanner.bat\" ${commandArgs}" | ||
} | ||
|
||
def vrunner(command, commandArgs) { | ||
echo "vrunner ${command} ${commandArgs}" | ||
bat "@chcp 65001 >nul\n@vrunner ${command} ${commandArgs}" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
|
||
#Использовать "../../coverage" | ||
|
||
#Область КомандаПриложения | ||
|
||
Процедура ОписаниеКоманды(Команда) Экспорт | ||
|
||
Команда.Опция("i input", "", "Файл с результатами отладки в формате csv") | ||
.ТСтрока() | ||
.Обязательный(); | ||
|
||
Команда.Опция("o output", "", "JSON файл покрытия с указанием путей к исходным файлам") | ||
.ТСтрока() | ||
.Обязательный(); | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ВыполнитьКоманду(Знач Команда) Экспорт | ||
|
||
КаталогСОтчетами = Команда.ЗначениеОпции("input"); | ||
ФайлXML = Команда.ЗначениеОпции("output"); | ||
|
||
ДанныеОтчета = Новый Соответствие; | ||
|
||
ФайлыОтчетов = НайтиФайлы(КаталогСОтчетами, "*.*"); | ||
Для Каждого ФайлОтчета Из ФайлыОтчетов Цикл | ||
|
||
Если ФайлОтчета.Расширение = ".json" Тогда | ||
ДанныеПокрытияФайл = ФорматДанныеПокрытия.ПрочитатьДанныеПокрытия(ФайлОтчета.ПолноеИмя); | ||
ИначеЕсли ФайлОтчета.Расширение = ".xml" Тогда | ||
ДанныеПокрытияФайл = ФорматДанныеПокрытия.ПрочитатьДанныеПокрытияXML(ФайлОтчета.ПолноеИмя); | ||
Иначе | ||
Продолжить; | ||
КонецЕсли; | ||
|
||
Для Каждого ДанныеПокрытияМодуляФайл Из ДанныеПокрытияФайл Цикл | ||
|
||
КлючДанных = ДанныеПокрытияМодуляФайл.SourcePath; | ||
ДанныеПокрытияМодуля = ДанныеОтчета.Получить(КлючДанных); | ||
Если ДанныеПокрытияМодуля = Неопределено Тогда | ||
ДанныеОтчета.Вставить(КлючДанных, ДанныеПокрытияМодуляФайл); | ||
Иначе | ||
ФорматДанныеПокрытия.ДополнитьДанныеПокрытия(ДанныеПокрытияМодуля, ДанныеПокрытияМодуляФайл); | ||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
|
||
КонецЦикла; | ||
|
||
ФорматДанныеПокрытия.ЗаписатьДанныеПокрытияXML(ФайлXML, ДанныеОтчета); | ||
|
||
КонецПроцедуры | ||
|
||
#КонецОбласти |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,77 @@ | ||
|
||
#Область ПрограммныйИнтерфейс | ||
|
||
Перем МодульОбычногоПриложения Экспорт; | ||
Перем МодульУправляемогоПриложения Экспорт; | ||
Перем МодульВнешнегоСоединения Экспорт; | ||
Перем МодульСеанса Экспорт; | ||
|
||
Перем ОбщийМодуль Экспорт; | ||
|
||
Перем МодульОбъекта Экспорт; | ||
Перем МодульМенеджера Экспорт; | ||
Перем МодульНабораЗаписей Экспорт; | ||
Перем МодульМенеджераЗначения Экспорт; | ||
Перем МодульМенеджераНастроек Экспорт; | ||
Перем МодульФормы Экспорт; | ||
Перем МодульКоманды Экспорт; | ||
|
||
#КонецОбласти | ||
|
||
МодульУправляемогоПриложения = "d22e852a-cf8a-4f77-8ccb-3548e7792bea"; | ||
МодульСеанса = "9b7bbbae-9771-46f2-9e4d-2489e0ffc702"; | ||
ОбщийМодуль = "d5963243-262e-4398-b4d7-fb16d06484f6"; | ||
// CommonModule | ||
// WebService | ||
// HTTPService | ||
ОбщийМодуль = "d5963243-262e-4398-b4d7-fb16d06484f6"; | ||
|
||
// Report | ||
// ExternalReport | ||
// DataProcessor | ||
// ExternalDataProcessor | ||
// Table | ||
// DimensionTable | ||
МодульОбъекта = "a637f77f-3840-441d-a1c3-699c8c5cb7e0"; | ||
МодульМенеджера = "d1b64a2c-8078-4982-8190-8f81aefda192"; | ||
|
||
// Enum | ||
// InformationRegister | ||
// DocumentJournal | ||
// Report | ||
// DataProcessor | ||
// AccumulationRegister | ||
// FilterCriterion | ||
// Table | ||
// Cube | ||
// DimensionTable | ||
// AccountingRegister | ||
// CalculationRegister | ||
МодульМенеджера = "d1b64a2c-8078-4982-8190-8f81aefda192"; | ||
|
||
// InformationRegister | ||
// Sequence | ||
// AccumulationRegister | ||
// Table | ||
// Cube | ||
// AccountingRegister | ||
// CalculationRegister | ||
// Recalculation | ||
МодульНабораЗаписей = "9f36fd70-4bf4-47f6-b235-935f73aab43f"; | ||
|
||
// Configuration | ||
МодульОбычногоПриложения = "a78d9ce3-4e0c-48d5-9863-ae7342eedf94"; | ||
|
||
// Configuration | ||
МодульУправляемогоПриложения = "d22e852a-cf8a-4f77-8ccb-3548e7792bea"; | ||
|
||
// Configuration | ||
МодульВнешнегоСоединения = "a4a9c1e2-1e54-4c7f-af06-4ca341198fac"; | ||
|
||
// Configuration | ||
МодульСеанса = "9b7bbbae-9771-46f2-9e4d-2489e0ffc702"; | ||
|
||
// Constant | ||
МодульМенеджераЗначения = "3e58c91f-9aaa-4f42-8999-4baf33907b75"; | ||
|
||
// SettingsStorage | ||
МодульМенеджераНастроек = "0c8cad23-bf8c-468e-b49e-12f1927c048b"; | ||
|
||
МодульФормы = "32e087ab-1491-49b6-aba7-43571b41ac2b"; | ||
МодульКоманды = "078a6af8-d22c-4248-9c33-7e90075a3d2c"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.