mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-10 04:18:47 +02:00
152 lines
6.6 KiB
Plaintext
152 lines
6.6 KiB
Plaintext
#Использовать "./../../../../src/en/OInt/tools/"
|
|
#Использовать "./../../../../src/ru/OInt/tools/"
|
|
#Использовать "./internal"
|
|
|
|
Перем СписокРабот;
|
|
Перем ТекущийДокумент;
|
|
|
|
Процедура СоздатьНаборWorkflow(Знач Языки, Знач КаталогПараметров, Знач КаталогWorkflow) Экспорт
|
|
|
|
Для Каждого Язык Из Языки Цикл
|
|
|
|
ФайлПараметров = КаталогПараметров + Язык + ".json";
|
|
ЛокальныеПараметры = Инструменты.ПрочитатьФайлJSON(ФайлПараметров);
|
|
СформироватьWorflow(ЛокальныеПараметры, КаталогWorkflow, Язык);
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура СформироватьWorflow(Знач Параметры, Знач КаталогWorkflow, Знач Язык)
|
|
|
|
СписокРабот = "";
|
|
СписокБиблиотек = Неопределено;
|
|
ТаблицаТестов = Неопределено;
|
|
МассивВлияющих = Новый Массив;
|
|
|
|
Выполнить("ТаблицаТестов = " + Параметры["testsTableMethod"]);
|
|
Выполнить("СписокБиблиотек = " + Параметры["testsSectionsMethod"]);
|
|
|
|
Для Каждого Библиотека Из СписокБиблиотек Цикл
|
|
МассивВлияющих.Добавить("Testing-" + Библиотека.Ключ);
|
|
КонецЦикла;
|
|
|
|
ФайлJenkins = КаталогWorkflow + "ostest" + Язык;
|
|
ТекущийДокумент = Новый ТекстовыйДокумент();
|
|
|
|
СообщитьНачалоФайлаПроцесса(Язык);
|
|
СформироватьЗапуск(ТаблицаТестов, СписокБиблиотек, Язык, Параметры);
|
|
СообщитьОкончаниеФайлаПроцесса(СписокБиблиотек, Язык, МассивВлияющих);
|
|
|
|
ТекущийДокумент.Записать(ФайлJenkins, "UTF-8");
|
|
|
|
тДанные = Новый ДвоичныеДанные(ФайлJenkins);
|
|
|
|
тСтрока = Base64Строка(тДанные);
|
|
тСтрока=Прав(тСтрока, СтрДлина(тСтрока)-4);
|
|
Base64Значение(тСтрока).Записать(ФайлJenkins);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура СформироватьЗапуск(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык, Знач Параметры)
|
|
|
|
МодульТестов = Параметры["testsModule"];
|
|
СтрокаРаздел = Параметры["sectionsString"];
|
|
СтрокаМетод = Параметры["methodString"];
|
|
СтрокаСиноним = Параметры["synonymString"];
|
|
|
|
ФайлТестов = "./src/" + Язык + "/OInt/tests/Modules/internal/" + МодульТестов + ".os";
|
|
|
|
Для Каждого Библиотека Из СписокБиблиотек Цикл
|
|
|
|
Раздел = Библиотека.Ключ;
|
|
Зависимости = Библиотека.Значение;
|
|
|
|
НазваниеРаботы = "Testing-" + Раздел;
|
|
СписокРабот = СписокРабот + НазваниеРаботы + ", ";
|
|
|
|
ТекстРаботы = "
|
|
| stage('" + НазваниеРаботы + "') {
|
|
| steps {
|
|
|
|
|
|";
|
|
|
|
Отбор = Новый Структура(СтрокаРаздел, Раздел);
|
|
ТестыТекущегоРаздела = ТаблицаТестов.НайтиСтроки(Отбор);
|
|
|
|
Для Каждого Тест Из ТестыТекущегоРаздела Цикл
|
|
|
|
Метод = Тест[СтрокаМетод];
|
|
Синоним = Тест[СтрокаСиноним];
|
|
|
|
ТекстРаботы = ТекстРаботы + "
|
|
| catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
| powershell encoding: 'UTF-8', script:'1testrunner -run """ + ФайлТестов + """ """ + Метод + """'
|
|
| }
|
|
|";
|
|
|
|
КонецЦикла;
|
|
|
|
ТекстРаботы = ТекстРаботы + "
|
|
| }
|
|
| }";
|
|
|
|
ТекущийДокумент.ДобавитьСтроку(ТекстРаботы);
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура СообщитьНачалоФайлаПроцесса(Знач Язык, Знач ИмяРаботы = "Полное тестирование")
|
|
|
|
ТекущийДокумент.ДобавитьСтроку(
|
|
"pipeline {
|
|
| agent any
|
|
| stages {
|
|
| stage('Prepare'){
|
|
| steps{
|
|
| powershell encoding: 'UTF-8', script:'cd ./src/" + Язык + "/OInt; opm build; opm install oint-1.13.0.ospx; del oint-1.13.0.ospx'
|
|
| withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
|
|
| bat encoding: 'UTF-8', script:'""C:/Program Files (x86)/GnuPG/bin/gpg.exe"" --quiet --batch --yes --decrypt --passphrase=""%GPGKEY%"" --output ./data.json ./data.json.gpg'
|
|
| }
|
|
|
|
|
| }
|
|
| }
|
|
|
|
|
| stage('Testing'){
|
|
| parallel{
|
|
|");
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура СообщитьОкончаниеФайлаПроцесса(Знач СписокБиблиотек, Знач Язык, Знач СписокВлияний = "")
|
|
|
|
ТекущийДокумент.ДобавитьСтроку("
|
|
| }
|
|
| }
|
|
|}
|
|
| post{
|
|
| always{
|
|
| script {
|
|
| withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
|
|
| bat encoding: 'UTF-8', script:'del ""./data.json.gpg""'
|
|
| bat encoding: 'UTF-8', script:'""C:/Program Files (x86)/GnuPG/bin/gpg.exe"" --batch --symmetric --cipher-algo AES256 --passphrase=""%GPGKEY%"" ./data.json'
|
|
| bat encoding: 'UTF-8', script:'del ""./data.json""'
|
|
| }
|
|
| withCredentials([gitUsernamePassword(credentialsId: 'gitmain', gitToolName: 'Default')]) {
|
|
| bat ""git config user.email vitaly.the.alpaca@gmail.com""
|
|
| bat 'git config user.name ""Vitaly the Alpaca (bot)""'
|
|
| bat ""git config --global core.ignorecase true""
|
|
| bat ""git add .""
|
|
| bat 'git commit -m ""Test data update (Jenkins)""'
|
|
| bat ""git push origin HEAD:main""
|
|
| }
|
|
| }
|
|
| }
|
|
| }
|
|
|
|
|
|}");
|
|
|
|
КонецПроцедуры
|
|
|