mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-20 09:19:27 +02:00
847 lines
26 KiB
Plaintext
847 lines
26 KiB
Plaintext
def runCommand(String command) {
|
|
if (isUnix()) {
|
|
sh(script: command)
|
|
} else {
|
|
bat(script: command)
|
|
}
|
|
}
|
|
|
|
pipeline {
|
|
agent {
|
|
label 'Deb-Agent' // Имя или метка агента
|
|
}
|
|
parameters {
|
|
booleanParam(name: 'Core', defaultValue: true, description: 'Run Core tests')
|
|
booleanParam(name: 'Telegram', defaultValue: true, description: 'Run Telegram tests')
|
|
booleanParam(name: 'VK', defaultValue: true, description: 'Run VK tests')
|
|
booleanParam(name: 'Viber', defaultValue: true, description: 'Run Viber tests')
|
|
booleanParam(name: 'FTP', defaultValue: true, description: 'Run FTP tests')
|
|
booleanParam(name: 'SSH', defaultValue: true, description: 'Run SSH tests')
|
|
booleanParam(name: 'SFTP', defaultValue: true, description: 'Run SFTP tests')
|
|
booleanParam(name: 'PostgreSQL', defaultValue: true, description: 'Run PostgreSQL tests')
|
|
booleanParam(name: 'MySQL', defaultValue: true, description: 'Run MySQL tests')
|
|
booleanParam(name: 'MSSQL', defaultValue: true, description: 'Run MSSQL tests')
|
|
booleanParam(name: 'SQLite', defaultValue: true, description: 'Run SQLite tests')
|
|
booleanParam(name: 'MongoDB', defaultValue: true, description: 'Run MongoDB tests')
|
|
booleanParam(name: 'RCON', defaultValue: true, description: 'Run RCON tests')
|
|
booleanParam(name: 'YandexDisk', defaultValue: true, description: 'Run YandexDisk tests')
|
|
booleanParam(name: 'GoogleWorkspace', defaultValue: true, description: 'Run GoogleWorkspace tests')
|
|
booleanParam(name: 'GoogleCalendar', defaultValue: true, description: 'Run GoogleCalendar tests')
|
|
booleanParam(name: 'GoogleDrive', defaultValue: true, description: 'Run GoogleDrive tests')
|
|
booleanParam(name: 'GoogleSheets', defaultValue: true, description: 'Run GoogleSheets tests')
|
|
booleanParam(name: 'Notion', defaultValue: true, description: 'Run Notion tests')
|
|
booleanParam(name: 'Slack', defaultValue: true, description: 'Run Slack tests')
|
|
booleanParam(name: 'Airtable', defaultValue: true, description: 'Run Airtable tests')
|
|
booleanParam(name: 'Dropbox', defaultValue: true, description: 'Run Dropbox tests')
|
|
booleanParam(name: 'Bitrix24', defaultValue: true, description: 'Run Bitrix24 tests')
|
|
booleanParam(name: 'VKTeams', defaultValue: true, description: 'Run VKTeams tests')
|
|
booleanParam(name: 'Neocities', defaultValue: true, description: 'Run Neocities tests')
|
|
booleanParam(name: 'CDEK', defaultValue: true, description: 'Run CDEK tests')
|
|
booleanParam(name: 'YandexMetrika', defaultValue: true, description: 'Run YandexMetrika tests')
|
|
booleanParam(name: 'S3', defaultValue: true, description: 'Run S3 tests')
|
|
booleanParam(name: 'TCP', defaultValue: true, description: 'Run TCP tests')
|
|
booleanParam(name: 'WebSocket', defaultValue: true, description: 'Run WebSocket tests')
|
|
booleanParam(name: 'ZeroMQ', defaultValue: true, description: 'Run ZeroMQ tests')
|
|
booleanParam(name: 'GreenAPI', defaultValue: true, description: 'Run GreenAPI tests')
|
|
booleanParam(name: 'GreenMax', defaultValue: true, description: 'Run GreenMax tests')
|
|
booleanParam(name: 'Ollama', defaultValue: true, description: 'Run Ollama tests')
|
|
booleanParam(name: 'HTTP', defaultValue: true, description: 'Run HTTP tests')
|
|
booleanParam(name: 'OpenAI', defaultValue: true, description: 'Run OpenAI tests')
|
|
booleanParam(name: 'ReportPortal', defaultValue: true, description: 'Run ReportPortal tests')
|
|
booleanParam(name: 'GRPC', defaultValue: true, description: 'Run GRPC tests')
|
|
booleanParam(name: 'ClickHouse', defaultValue: true, description: 'Run ClickHouse tests')
|
|
booleanParam(name: 'RSS', defaultValue: true, description: 'Run RSS tests')
|
|
booleanParam(name: 'MessagePack', defaultValue: true, description: 'Run MessagePack tests')
|
|
booleanParam(name: 'Janx', defaultValue: true, description: 'Run Janx tests')
|
|
booleanParam(name: 'Lua', defaultValue: true, description: 'Run Lua tests')
|
|
}
|
|
stages {
|
|
|
|
stage('Sync add-ins') {
|
|
steps {
|
|
script {
|
|
if (isUnix()) {
|
|
sh 'bash src/addins/sync-addins.sh'
|
|
} else {
|
|
bat 'call src\\addins\\sync-addins.bat'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Remove oint') {
|
|
steps {
|
|
script {
|
|
// Удаляем oint, если он установлен
|
|
sh 'dpkg -r oint || echo "oint not installed"'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Download oint package') {
|
|
steps {
|
|
script {
|
|
// Скачиваем новый deb-пакет oint
|
|
sh 'wget -O oint_2.2.0_all_ru.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/2.2.0/oint_2.2.0_all_ru.deb '
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Install oint package') {
|
|
steps {
|
|
script {
|
|
sh 'dpkg -i oint_2.2.0_all_ru.deb'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Prepare'){
|
|
steps{
|
|
sh 'cd ./src/ru/OInt && opm build && opm install oint-2.2.0.ospx && rm oint-2.2.0.ospx'
|
|
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
|
|
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
|
|
}
|
|
}
|
|
}
|
|
stage('Create ReportPortal launch'){
|
|
steps{
|
|
sh 'oscript ./ci/os/internal/Classes/ReportPortalMethods.os start "CLI"'
|
|
}
|
|
}
|
|
|
|
stage('Testing-Core') {
|
|
when {
|
|
expression { return params['Core'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Core.os', [
|
|
'ПроверитьСоответствиеИБПоследнейСборке',
|
|
'ПроверитьРасширенныйВызов',
|
|
], true)
|
|
}
|
|
}
|
|
}
|
|
stage('Testing') {
|
|
parallel {
|
|
stage('Testing-Telegram') {
|
|
when {
|
|
expression { return params['Telegram'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Telegram.os', [
|
|
'Телеграм_ПолучитьИнформациюБота',
|
|
'Телеграм_ПолучитьОбновления',
|
|
'Телеграм_УстановитьWebhook',
|
|
'Телеграм_ОтправитьТекстовоеСообщение',
|
|
'Телеграм_ОтправитьКартинку',
|
|
'Телеграм_ОтправитьВидео',
|
|
'Телеграм_ОтправитьАудио',
|
|
'Телеграм_ОтправитьДокумент',
|
|
'Телеграм_ОтправитьГифку',
|
|
'Телеграм_ОтправитьМедиагруппу',
|
|
'Телеграм_ОтправитьМестоположение',
|
|
'Телеграм_ОтправитьКонтакт',
|
|
'Телеграм_ОтправитьОпрос',
|
|
'Телеграм_ПереслатьСообщение',
|
|
'Телеграм_БанРазбан',
|
|
'Телеграм_СоздатьСсылкуПриглашение',
|
|
'Телеграм_ЗакрепитьОткрепитьСообщение',
|
|
'Телеграм_ПолучитьЧислоУчастников',
|
|
'Телеграм_ПолучитьСписокАватаровФорума',
|
|
'Телеграм_СоздатьУдалитьТемуФорума',
|
|
'Телеграм_ИзменитьИмяГлавнойТемы',
|
|
'Телеграм_СкрытьПоказатьГлавнуюТему',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-VK') {
|
|
when {
|
|
expression { return params['VK'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_VK.os', [
|
|
'ВК_СоздатьСсылкуТокена',
|
|
'ВК_СоздатьУдалитьПост',
|
|
'ВК_СоздатьСоставнойПост',
|
|
'ВК_СоздатьОпрос',
|
|
'ВК_СохранитьУдалитьКартинку',
|
|
'ВК_СоздатьИсторию',
|
|
'ВК_ЛайкРепостКоммент',
|
|
'ВК_ПолучитьСтатистику',
|
|
'ВК_ПолучитьСтатистикуПостов',
|
|
'ВК_СоздатьРекламнуюКампанию',
|
|
'ВК_ОтправитьСообщение',
|
|
'ВК_ПолучитьКатегорииТоваров',
|
|
'ВК_СоздатьТоварПодборку',
|
|
'ВК_СоздатьТоварСоСвойствами',
|
|
'ВК_ПолучитьСписокТоваров',
|
|
'ВК_ПолучитьСписокПодборок',
|
|
'ВК_ПолучитьСписокСвойств',
|
|
'ВК_ПолучитьСписокЗаказов',
|
|
'ВК_ЗагрузитьВидео',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Viber') {
|
|
when {
|
|
expression { return params['Viber'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Viber.os', [
|
|
'Вайбер_ПолучениеИнформации',
|
|
'Вайбер_ОтправкаСообщений',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-FTP') {
|
|
when {
|
|
expression { return params['FTP'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_FTP.os', [
|
|
'FT_РаботаСДиректориями',
|
|
'FT_РаботаСФайлами',
|
|
'FT_ОсновныеМетоды',
|
|
'FT_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SSH') {
|
|
when {
|
|
expression { return params['SSH'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_SSH.os', [
|
|
'SShell_ОсновныеМетоды',
|
|
'SShell_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SFTP') {
|
|
when {
|
|
expression { return params['SFTP'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_SFTP.os', [
|
|
'SF_ОсновныеМетоды',
|
|
'SF_РаботаСДиректориями',
|
|
'SF_РаботаСФайлами',
|
|
'SF_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-PostgreSQL') {
|
|
when {
|
|
expression { return params['PostgreSQL'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_PostgreSQL.os', [
|
|
'Postgres_ОсновныеМетоды',
|
|
'Postgres_РасширеннаяПроверка',
|
|
'Postgres_ORM',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MySQL') {
|
|
when {
|
|
expression { return params['MySQL'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_MySQL.os', [
|
|
'MYS_ОсновныеМетоды',
|
|
'MYS_РасширеннаяПроверка',
|
|
'MYS_ORM',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MSSQL') {
|
|
when {
|
|
expression { return params['MSSQL'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_MSSQL.os', [
|
|
'MSS_ОсновныеМетоды',
|
|
'MSS_РасширеннаяПроверка',
|
|
'MSS_ORM',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SQLite') {
|
|
when {
|
|
expression { return params['SQLite'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_SQLite.os', [
|
|
'SQLL_ОсновныеМетоды',
|
|
'SQLL_РасширеннаяПроверка',
|
|
'SQLL_ORM',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MongoDB') {
|
|
when {
|
|
expression { return params['MongoDB'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_MongoDB.os', [
|
|
'Mongo_ОсновныеМетоды',
|
|
'Mongo_РасширеннаяПроверка',
|
|
'Mongo_РаботаСБазами',
|
|
'Mongo_РаботаСКоллекциями',
|
|
'Mongo_РаботаСДокументами',
|
|
'Mongo_УправлениеПользователями',
|
|
'Mongo_УправлениеРолями',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-RCON') {
|
|
when {
|
|
expression { return params['RCON'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_RCON.os', [
|
|
'RC_ВыполнениеКоманд',
|
|
'RC_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-YandexDisk') {
|
|
when {
|
|
expression { return params['YandexDisk'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_YandexDisk.os', [
|
|
'ЯДиск_Авторизация',
|
|
'ЯДиск_ПолучитьИнформациюОДиске',
|
|
'ЯДиск_СоздатьПапку',
|
|
'ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект',
|
|
'ЯДиск_ЗагрузитьУдалитьФайл',
|
|
'ЯДиск_СоздатьКопиюОбъекта',
|
|
'ЯДиск_ПолучитьСсылкуНаСкачивание',
|
|
'ЯДиск_ПолучитьСписокФайлов',
|
|
'ЯДиск_ПереместитьОбъект',
|
|
'ЯДиск_ДействияПубличныхОбъектов',
|
|
'ЯДиск_ПолучитьСписокОпубликованных',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleWorkspace') {
|
|
when {
|
|
expression { return params['GoogleWorkspace'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GoogleWorkspace.os', [
|
|
'ГВ_Авторизация',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleCalendar') {
|
|
when {
|
|
expression { return params['GoogleCalendar'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GoogleCalendar.os', [
|
|
'ГК_Авторизация',
|
|
'ГК_ПолучитьСписокКалендарей',
|
|
'ГК_СоздатьУдалитьКалендарь',
|
|
'ГК_СоздатьУдалитьСобытие',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleDrive') {
|
|
when {
|
|
expression { return params['GoogleDrive'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GoogleDrive.os', [
|
|
'ГД_Авторизация',
|
|
'ГД_ПолучитьСписокКаталогов',
|
|
'ГД_ЗагрузитьУдалитьФайл',
|
|
'ГД_СоздатьУдалитьКомментарий',
|
|
'ГД_СоздатьКаталог',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleSheets') {
|
|
when {
|
|
expression { return params['GoogleSheets'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GoogleSheets.os', [
|
|
'ГТ_Авторизация',
|
|
'ГТ_СоздатьТаблицу',
|
|
'ГТ_ЗаполнитьОчиститьЯчейки',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Notion') {
|
|
when {
|
|
expression { return params['Notion'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Notion.os', [
|
|
'НоушнАпи_СоздатьСтраницу',
|
|
'НоушнАпи_СоздатьИзменитьБазу',
|
|
'НоушнАпи_СоздатьУдалитьБлок',
|
|
'НоушнАпи_ПолучитьПользователей',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Slack') {
|
|
when {
|
|
expression { return params['Slack'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Slack.os', [
|
|
'Слак_ПолучитьИнформацию',
|
|
'Слак_ОтправитьУдалитьСообщение',
|
|
'Слак_СоздатьАрхивироватьКанал',
|
|
'Слак_ОткрытьЗакрытьДиалог',
|
|
'Слак_ЗагрузитьУдалитьФайл',
|
|
'Слак_ЗагрузитьУдалитьВФ',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Airtable') {
|
|
when {
|
|
expression { return params['Airtable'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Airtable.os', [
|
|
'АТ_СоздатьБазу',
|
|
'АТ_СоздатьТаблицу',
|
|
'АТ_СоздатьПоле',
|
|
'АТ_СоздатьУдалитьЗаписи',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Dropbox') {
|
|
when {
|
|
expression { return params['Dropbox'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Dropbox.os', [
|
|
'ДропБокс_ПолучитьОбновитьТокен',
|
|
'ДропБокс_ЗагрузитьФайл',
|
|
'ДропБокс_ЗагрузитьФайлПоURL',
|
|
'ДропБокс_СоздатьКаталог',
|
|
'ДропБокс_СоздатьУдалитьТег',
|
|
'ДропБокс_ПолучитьАккаунт',
|
|
'ДропБокс_РаботаСДоступами',
|
|
'ДропБокс_ПолучитьСписокФайловПапки',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Bitrix24') {
|
|
when {
|
|
expression { return params['Bitrix24'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Bitrix24.os', [
|
|
'Б24_РаботаСТокеном',
|
|
'Б24_СерверноеВремя',
|
|
'Б24_РаботаСНовостями',
|
|
'Б24_РаботаСЗадачами',
|
|
'Б24_РаботаСКомментариями',
|
|
'Б24_РаботаСДиском',
|
|
'Б24_Канбан',
|
|
'Б24_УчетРабочегоВремени',
|
|
'Б24_РаботаСЧатами',
|
|
'Б24_РаботаСУведомлениями',
|
|
'Б24_РаботаСПолямиЗадач',
|
|
'Б24_УправлениеПодразделениями',
|
|
'Б24_УправлениеПользователями',
|
|
'Б24_РаботаСЛидами',
|
|
'Б24_РаботаСоСделками',
|
|
'Б24_РаботаСКалендарями',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-VKTeams') {
|
|
when {
|
|
expression { return params['VKTeams'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_VKTeams.os', [
|
|
'ВКТ_ОтправкаСообщений',
|
|
'ВКТ_ОбщиеМетоды',
|
|
'ВКТ_УправлениеЧатами',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Neocities') {
|
|
when {
|
|
expression { return params['Neocities'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Neocities.os', [
|
|
'НС_РаботаСФайлами',
|
|
'НС_ПолучениеДанных',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-CDEK') {
|
|
when {
|
|
expression { return params['CDEK'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_CDEK.os', [
|
|
'СдэкАПИ_ОбщиеМетоды',
|
|
'СдэкАПИ_РаботаСЗаказами',
|
|
'СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-YandexMetrika') {
|
|
when {
|
|
expression { return params['YandexMetrika'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_YandexMetrika.os', [
|
|
'ЯМетрика_УправлениеМетками',
|
|
'ЯМетрика_УправлениеСчетчиками',
|
|
'ЯМетрика_УправлениеОперациями',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-S3') {
|
|
when {
|
|
expression { return params['S3'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_S3.os', [
|
|
'AWS_ОбщиеМетоды',
|
|
'AWS_РаботаСБакетами',
|
|
'AWS_РаботаСОбъектами',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-TCP') {
|
|
when {
|
|
expression { return params['TCP'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_TCP.os', [
|
|
'TC_Клиент',
|
|
'TC_Сервер',
|
|
'TC_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-WebSocket') {
|
|
when {
|
|
expression { return params['WebSocket'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_WebSocket.os', [
|
|
'WS_Клиент',
|
|
'WS_Сервер',
|
|
'WS_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-ZeroMQ') {
|
|
when {
|
|
expression { return params['ZeroMQ'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_ZeroMQ.os', [
|
|
'ZMQ_Общие',
|
|
'ZMQ_МетодыПодключения',
|
|
'ZMQ_МетодыПрослушивания',
|
|
'ZMQ_МетодыВзаимодействия',
|
|
'ZMQ_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GreenAPI') {
|
|
when {
|
|
expression { return params['GreenAPI'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GreenAPI.os', [
|
|
'GAPI_УправлениеГруппами',
|
|
'GAPI_ОтправкаСообщений',
|
|
'GAPI_ПолучениеУведомлений',
|
|
'GAPI_ОчередьСообщений',
|
|
'GAPI_ЖурналыСообщений',
|
|
'GAPI_Аккаунт',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GreenMax') {
|
|
when {
|
|
expression { return params['GreenMax'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GreenMax.os', [
|
|
'GMax_РаботаСГруппами',
|
|
'GMax_ОтправкаСообщений',
|
|
'GMax_Уведомления',
|
|
'GMax_ИсторияСообщений',
|
|
'GMax_Очереди',
|
|
'GMax_Аккаунт',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Ollama') {
|
|
when {
|
|
expression { return params['Ollama'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Ollama.os', [
|
|
'OLLM_ОбработкаЗапросов',
|
|
'OLLM_РаботаСМоделями',
|
|
'OLLM_РаботаСBlob',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-HTTP') {
|
|
when {
|
|
expression { return params['HTTP'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_HTTP.os', [
|
|
'HTTP_Инициализация',
|
|
'HTTP_УстановкаТела',
|
|
'HTTP_Настройки',
|
|
'HTTP_УстановкаЗаголовков',
|
|
'HTTP_Авторизация',
|
|
'HTTP_ОбработкаЗапроса',
|
|
'HTTP_ПолучениеОтвета',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-OpenAI') {
|
|
when {
|
|
expression { return params['OpenAI'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_OpenAI.os', [
|
|
'OAI_ОбработкаЗапросов',
|
|
'OAI_Ассистенты',
|
|
'OAI_РаботаСФайлами',
|
|
'OAI_РаботаСАудио',
|
|
'OAI_РаботаСМоделями',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-ReportPortal') {
|
|
when {
|
|
expression { return params['ReportPortal'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_ReportPortal.os', [
|
|
'RPortal_Авторизация',
|
|
'RPortal_УправлениеТестами',
|
|
'RPortal_ЗаписьЛогов',
|
|
'RPortal_УправлениеПроектами',
|
|
'RPortal_УправлениеПользователями',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GRPC') {
|
|
when {
|
|
expression { return params['GRPC'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_GRPC.os', [
|
|
'GR_ОсновныеМетоды',
|
|
'GR_РасширеннаяПроверка',
|
|
'GR_Интроспекция',
|
|
'GR_Стриминг',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-ClickHouse') {
|
|
when {
|
|
expression { return params['ClickHouse'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_ClickHouse.os', [
|
|
'CH_ОсновныеМетоды',
|
|
'CH_GRPC',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-RSS') {
|
|
when {
|
|
expression { return params['RSS'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_RSS.os', [
|
|
'RSS_МетодыRSS',
|
|
'RSS_МетодыAtom',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MessagePack') {
|
|
when {
|
|
expression { return params['MessagePack'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_MessagePack.os', [
|
|
'MP_Данные',
|
|
'MP_Бенчмарк',
|
|
'MP_Совместимость',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Janx') {
|
|
when {
|
|
expression { return params['Janx'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Janx.os', [
|
|
'Jnx_Данные',
|
|
'Jnx_РасширеннаяПроверкаДанные',
|
|
'Jnx_Бенчмарк',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Lua') {
|
|
when {
|
|
expression { return params['Lua'] }
|
|
}
|
|
steps {
|
|
script {
|
|
runModuleTests('./src/ru/OInt/tests/Modules/OPItc_Lua.os', [
|
|
'Lua_ОсновныеМетоды',
|
|
'Lua_РаботаСоСкриптами',
|
|
'Lua_РаботаСБайткодом',
|
|
'Lua_ГлобальныеПеременные',
|
|
'Lua_УправлениеПакетами',
|
|
'Lua_РасширеннаяПроверка',
|
|
])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
post{
|
|
always{
|
|
script {
|
|
catchError() {
|
|
runCommand('oscript ./ci/os/internal/Classes/ReportPortalMethods.os stop')
|
|
}
|
|
withCredentials([gitUsernamePassword(credentialsId: 'gitmain', gitToolName: 'Default')]) {
|
|
sh "git config user.email vitaly.the.alpaca@gmail.com"
|
|
sh 'git config user.name "Vitaly the Alpaca (bot)"'
|
|
sh "git config --global core.ignorecase true"
|
|
sh "git add ."
|
|
sh 'git commit -m "Test data update (Jenkins)"'
|
|
sh "git push origin HEAD:main"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def runModuleTests(String modulePath, List methods, boolean fatal = false) {
|
|
for (method in methods) {
|
|
if (fatal) {
|
|
runLibraryTest(modulePath, method)
|
|
} else {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
runLibraryTest(modulePath, method)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def runLibraryTest(String configPath, String libraryName) {
|
|
try {
|
|
echo "Executing: 1testrunner -run \"${configPath}\" \"${libraryName}\""
|
|
runCommand("1testrunner -run \"${configPath}\" \"${libraryName}\"")
|
|
echo "Test ${libraryName} completed successfully"
|
|
} catch (Exception e) {
|
|
echo "ERROR in test ${libraryName}: ${e.getMessage()}"
|
|
throw e
|
|
}
|
|
} |