You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-25 22:12:29 +02:00
1065 lines
46 KiB
Plaintext
Vendored
1065 lines
46 KiB
Plaintext
Vendored
def runCommand(String command) {
|
|
if (isUnix()) {
|
|
sh(script: command)
|
|
} else {
|
|
bat(script: command)
|
|
}
|
|
}
|
|
|
|
pipeline {
|
|
agent {
|
|
label 'windows'
|
|
}
|
|
stages {
|
|
|
|
stage('Prepare Test Results Directory') {
|
|
steps {
|
|
script {
|
|
runCommand '''
|
|
if exist ".\\test_results" (
|
|
rmdir /s /q ".\\test_results"
|
|
)
|
|
mkdir ".\\test_results"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Create ReportPortal launch'){
|
|
steps{
|
|
bat encoding: 'UTF-8', script:'chcp 65001 & oscript ./ci/os/rp_start.os "1C:Enterprise"'
|
|
}
|
|
}
|
|
|
|
stage('Testing-Telegram') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Telegram.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Telegram.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Telegram.report')) {
|
|
def reportContent = readFile('./test_results/Telegram.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Telegram.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Telegram.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-VK') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\VK.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/VK.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/VK.report')) {
|
|
def reportContent = readFile('./test_results/VK.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: VK.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/VK.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Viber') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Viber.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Viber.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Viber.report')) {
|
|
def reportContent = readFile('./test_results/Viber.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Viber.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Viber.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Twitter') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Twitter.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Twitter.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Twitter.report')) {
|
|
def reportContent = readFile('./test_results/Twitter.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Twitter.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Twitter.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-FTP') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\FTP.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/FTP.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/FTP.report')) {
|
|
def reportContent = readFile('./test_results/FTP.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: FTP.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/FTP.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SSH') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\SSH.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/SSH.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/SSH.report')) {
|
|
def reportContent = readFile('./test_results/SSH.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: SSH.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/SSH.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SFTP') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\SFTP.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/SFTP.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/SFTP.report')) {
|
|
def reportContent = readFile('./test_results/SFTP.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: SFTP.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/SFTP.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-PostgreSQL') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\PostgreSQL.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/PostgreSQL.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/PostgreSQL.report')) {
|
|
def reportContent = readFile('./test_results/PostgreSQL.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: PostgreSQL.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/PostgreSQL.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MySQL') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\MySQL.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/MySQL.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/MySQL.report')) {
|
|
def reportContent = readFile('./test_results/MySQL.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: MySQL.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/MySQL.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-MSSQL') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\MSSQL.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/MSSQL.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/MSSQL.report')) {
|
|
def reportContent = readFile('./test_results/MSSQL.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: MSSQL.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/MSSQL.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-SQLite') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\SQLite.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/SQLite.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/SQLite.report')) {
|
|
def reportContent = readFile('./test_results/SQLite.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: SQLite.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/SQLite.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-RCON') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\RCON.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/RCON.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/RCON.report')) {
|
|
def reportContent = readFile('./test_results/RCON.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: RCON.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/RCON.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-YandexDisk') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\YandexDisk.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/YandexDisk.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/YandexDisk.report')) {
|
|
def reportContent = readFile('./test_results/YandexDisk.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: YandexDisk.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/YandexDisk.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleWorkspace') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GoogleWorkspace.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GoogleWorkspace.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GoogleWorkspace.report')) {
|
|
def reportContent = readFile('./test_results/GoogleWorkspace.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GoogleWorkspace.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GoogleWorkspace.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleCalendar') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GoogleCalendar.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GoogleCalendar.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GoogleCalendar.report')) {
|
|
def reportContent = readFile('./test_results/GoogleCalendar.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GoogleCalendar.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GoogleCalendar.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleDrive') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GoogleDrive.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GoogleDrive.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GoogleDrive.report')) {
|
|
def reportContent = readFile('./test_results/GoogleDrive.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GoogleDrive.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GoogleDrive.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GoogleSheets') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GoogleSheets.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GoogleSheets.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GoogleSheets.report')) {
|
|
def reportContent = readFile('./test_results/GoogleSheets.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GoogleSheets.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GoogleSheets.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Notion') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Notion.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Notion.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Notion.report')) {
|
|
def reportContent = readFile('./test_results/Notion.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Notion.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Notion.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Slack') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Slack.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Slack.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Slack.report')) {
|
|
def reportContent = readFile('./test_results/Slack.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Slack.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Slack.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Airtable') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Airtable.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Airtable.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Airtable.report')) {
|
|
def reportContent = readFile('./test_results/Airtable.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Airtable.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Airtable.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Dropbox') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Dropbox.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Dropbox.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Dropbox.report')) {
|
|
def reportContent = readFile('./test_results/Dropbox.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Dropbox.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Dropbox.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Bitrix24') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Bitrix24.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Bitrix24.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Bitrix24.report')) {
|
|
def reportContent = readFile('./test_results/Bitrix24.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Bitrix24.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Bitrix24.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-VkTeams') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\VkTeams.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/VkTeams.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/VkTeams.report')) {
|
|
def reportContent = readFile('./test_results/VkTeams.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: VkTeams.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/VkTeams.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Neocities') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Neocities.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Neocities.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Neocities.report')) {
|
|
def reportContent = readFile('./test_results/Neocities.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Neocities.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Neocities.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-CDEK') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\CDEK.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/CDEK.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/CDEK.report')) {
|
|
def reportContent = readFile('./test_results/CDEK.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: CDEK.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/CDEK.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-YandexMetrika') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\YandexMetrika.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/YandexMetrika.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/YandexMetrika.report')) {
|
|
def reportContent = readFile('./test_results/YandexMetrika.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: YandexMetrika.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/YandexMetrika.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-S3') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\S3.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/S3.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/S3.report')) {
|
|
def reportContent = readFile('./test_results/S3.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: S3.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/S3.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-TCP') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\TCP.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/TCP.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/TCP.report')) {
|
|
def reportContent = readFile('./test_results/TCP.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: TCP.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/TCP.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GreenAPI') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GreenAPI.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GreenAPI.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GreenAPI.report')) {
|
|
def reportContent = readFile('./test_results/GreenAPI.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GreenAPI.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GreenAPI.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-GreenMax') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\GreenMax.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/GreenMax.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/GreenMax.report')) {
|
|
def reportContent = readFile('./test_results/GreenMax.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: GreenMax.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/GreenMax.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-Ollama') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\Ollama.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/Ollama.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/Ollama.report')) {
|
|
def reportContent = readFile('./test_results/Ollama.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: Ollama.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/Ollama.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-HTTPClient') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\HTTPClient.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/HTTPClient.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/HTTPClient.report')) {
|
|
def reportContent = readFile('./test_results/HTTPClient.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: HTTPClient.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/HTTPClient.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-OpenAI') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\OpenAI.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/OpenAI.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/OpenAI.report')) {
|
|
def reportContent = readFile('./test_results/OpenAI.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: OpenAI.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/OpenAI.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Testing-ReportPortal') {
|
|
steps {
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
|
|
script {
|
|
runCommand('"C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe" /IBConnectionString "Srvr=\"\"DEVSRV\"\";Ref=\"\"OpenIntegrationsEng\"\";" /C"RunUnitTests=C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\OpiBuild\\OpiMain\\service\\yaxunit_conf\\en\\ReportPortal.json"')
|
|
|
|
timeout(time: 60, unit: 'MINUTES') {
|
|
waitUntil {
|
|
fileExists './test_results/ReportPortal.code'
|
|
}
|
|
}
|
|
|
|
if (fileExists('./test_results/ReportPortal.report')) {
|
|
def reportContent = readFile('./test_results/ReportPortal.report')
|
|
echo "=== report content ==="
|
|
echo reportContent
|
|
echo "=========================="
|
|
} else {
|
|
echo "WARNING: ReportPortal.report file not found"
|
|
}
|
|
|
|
def exitCode = readFile('./test_results/ReportPortal.code').trim().replaceAll("[^0-9]", "")
|
|
if (exitCode != "0") {
|
|
error "Tests failed with exit code: ${exitCode}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
post{
|
|
always{
|
|
script {
|
|
catchError() {
|
|
runCommand('oscript ./ci/os/rp_stop.os "en"')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |