From b3618d419c8d106a18fea13b35619730a90d6422 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 5 Jul 2025 23:51:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20JF=20=D0=B4=D0=BB=D1=8F=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20CLI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../МетодыФормированияТестовJenkins.os | 21 +++++- service/templates/jenkins/cli_test_deb.txt | 72 +++++++++++++++++++ service/templates/jenkins/cli_test_rpm.txt | 71 ++++++++++++++++++ 3 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 service/templates/jenkins/cli_test_deb.txt create mode 100644 service/templates/jenkins/cli_test_rpm.txt diff --git a/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os b/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os index 5f2b254c4e..15f5474368 100644 --- a/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os +++ b/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os @@ -6,6 +6,8 @@ Перем ШаблонCliWindows; Перем ШаблонOsWindows; Перем ШаблонOsLinux; +Перем ШаблонCliRpm; +Перем ШаблонCliDeb; Перем ШаблонШага; Перем ШаблонВыполнения; @@ -16,6 +18,8 @@ ПутьШаблонаCliWindows = КаталогШаблонов + "cli_test_windows.txt"; ПутьШаблонаOsWindows = КаталогШаблонов + "os_test_windows.txt"; ПутьШаблонаOsLinux = КаталогШаблонов + "os_test_linux.txt"; + ПутьШаблонаCliRpm = КаталогШаблонов + "cli_test_rpm.txt"; + ПутьШаблонаCliDeb = КаталогШаблонов + "cli_test_deb.txt"; ПутьШаблонаШага = КаталогШаблонов + "test_stage.txt"; ПутьШаблонаВыполнения = КаталогШаблонов + "test_exec.txt"; @@ -29,6 +33,12 @@ ШаблонOsLinux = Новый ДвоичныеДанные(ПутьШаблонаOsLinux); ШаблонOsLinux = ПолучитьСтрокуИзДвоичныхДанных(ШаблонOsLinux); + ШаблонCliRpm = Новый ДвоичныеДанные(ПутьШаблонаCliRpm); + ШаблонCliRpm = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliRpm); + + ШаблонCliDeb = Новый ДвоичныеДанные(ПутьШаблонаCliDeb); + ШаблонCliDeb = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliDeb); + ШаблонШага = Новый ДвоичныеДанные(ПутьШаблонаШага); ШаблонШага = ПолучитьСтрокуИзДвоичныхДанных(ШаблонШага); @@ -61,7 +71,9 @@ ФайлJenkinsOS = КаталогWorkflow + "os_test_" + Язык; ФайлJenkinsOSRPM = КаталогWorkflow + "os_rpm_test_" + Язык; ФайлJenkinsOSDEB = КаталогWorkflow + "os_deb_test_" + Язык; - ФайлJenkinsCLI = КаталогWorkflow + "cli_test_" + Язык; + ФайлWindowsCLI = КаталогWorkflow + "cli_test_" + Язык; + ФайлRpmCLI = КаталогWorkflow + "cli_rpm_test_" + Язык; + ФайлDebCLI = КаталогWorkflow + "cli_deb_test_" + Язык; ТекстВыполненияOS = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов); ТекстВыполненияCLI = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестовCLI, "CLI_"); @@ -71,11 +83,16 @@ ТекстJFOSRPM = СтрШаблон(ШаблонOsLinux, Язык, ТекстВыполненияOS, "Rpm-Agent"); ТекстJFOSDEB = СтрШаблон(ШаблонOsLinux, Язык, ТекстВыполненияOS, "Deb-Agent"); + + ТекстJFCLIRPM = СтрШаблон(ШаблонCliRpm, Язык, ТекстВыполненияOS, "Rpm-Agent"); + ТекстJFCLIDEB = СтрШаблон(ШаблонCliDeb, Язык, ТекстВыполненияOS, "Deb-Agent"); ПолучитьДвоичныеДанныеИзСтроки(ТекстJFOS).Записать(ФайлJenkinsOS); ПолучитьДвоичныеДанныеИзСтроки(ТекстJFOSRPM).Записать(ФайлJenkinsOSRPM); ПолучитьДвоичныеДанныеИзСтроки(ТекстJFOSDEB).Записать(ФайлJenkinsOSDEB); - ПолучитьДвоичныеДанныеИзСтроки(ТекстJFCLI).Записать(ФайлJenkinsCLI); + ПолучитьДвоичныеДанныеИзСтроки(ТекстJFCLI).Записать(ФайлWindowsCLI); + ПолучитьДвоичныеДанныеИзСтроки(ТекстJFCLIRPM).Записать(ФайлRpmCLI); + ПолучитьДвоичныеДанныеИзСтроки(ТекстJFCLIDEB).Записать(ФайлDebCLI); КонецПроцедуры diff --git a/service/templates/jenkins/cli_test_deb.txt b/service/templates/jenkins/cli_test_deb.txt new file mode 100644 index 0000000000..de97d2454a --- /dev/null +++ b/service/templates/jenkins/cli_test_deb.txt @@ -0,0 +1,72 @@ +def runCommand(String command) { + if (isUnix()) { + sh(script: command) + } else { + bat(script: command) + } +} + +pipeline { + agent { + label '%3' // Имя или метка агента + } + + stages { + stage('Remove oint') { + steps { + script { + // Удаляем oint, если он установлен + sh 'sudo dpkg -r oint || echo "oint not installed"' + } + } + } + + stage('Download oint package') { + steps { + script { + // Скачиваем новый deb-пакет oint + sh 'wget -O oint_1.26.0_all_%1.deb https://jenkins.openintegrations.dev/job/OpiRelease/lastSuccessfulBuild/artifact/1.26.0/oint_1.26.0_all_%1.deb ' + } + } + } + + stage('Install oint package') { + steps { + script { + // Устанавливаем скаченный пакет + sh 'sudo dpkg -i oint_1.26.0_all_%1.deb' + } + } + } + + stage('Prepare'){ + steps{ + withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { + sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' + } + } + } + +%2 + + } + post{ + always{ + script { + withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { + sh 'rm "./data.json.gpg"' + sh 'gpg --batch --symmetric --cipher-algo AES256 --passphrase="$GPGKEY" ./data.json' + sh 'rm "./data.json"' + } + 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" + } + } + } + } +} \ No newline at end of file diff --git a/service/templates/jenkins/cli_test_rpm.txt b/service/templates/jenkins/cli_test_rpm.txt new file mode 100644 index 0000000000..b48352b0c0 --- /dev/null +++ b/service/templates/jenkins/cli_test_rpm.txt @@ -0,0 +1,71 @@ +def runCommand(String command) { + if (isUnix()) { + sh(script: command) + } else { + bat(script: command) + } +} + +pipeline { + agent { + label '%3' // Имя или метка агента + } + + stage('Remove oint') { + steps { + script { + // Удаляем oint, если он установлен + sh 'sudo rpm -e oint || echo "oint not installed"' + } + } + } + + stage('Download oint package') { + steps { + script { + // Скачиваем новый rpm-пакет oint + sh 'wget -O oint-1.26.0-1.noarch_%1.rpm https://jenkins.openintegrations.dev/job/OpiRelease/lastSuccessfulBuild/artifact/1.26.0/oint-1.26.0-1.noarch_%1.rpm ' + } + } + } + + stage('Install oint package') { + steps { + script { + // Устанавливаем скаченный пакет + sh 'sudo rpm -ivh --replacepkgs oint-1.26.0-1.noarch_%1.rpm' + } + } + } + + stage('Prepare'){ + steps{ + withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { + sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' + } + } + } + +%2 + + } + post{ + always{ + script { + withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { + sh 'rm "./data.json.gpg"' + sh 'gpg --batch --symmetric --cipher-algo AES256 --passphrase="$GPGKEY" ./data.json' + sh 'rm "./data.json"' + } + 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" + } + } + } + } +} \ No newline at end of file