Skip to content

Commit

Permalink
Merge branch 'release/v.1.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed May 12, 2022
2 parents 4ab8fc5 + 5c31dc1 commit aebb2b0
Show file tree
Hide file tree
Showing 57 changed files with 2,087 additions and 914 deletions.
32 changes: 20 additions & 12 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,36 @@ jobs:
opm install opm
opm install --dev
# Запуск контейнера NextCloud
- name: Запуск контейнера NextCloud
# Запуск контейнеров NextCloud и OpenSSH
- name: Запуск контейнеров NextCloud и OpenSSH
env:
NC_ADDRESS: ${{ secrets.NC_ADDRESS }}
NC_ADMIN_NAME: ${{ secrets.NC_ADMIN_NAME }}
NC_ADMIN_PWD: ${{ secrets.NC_ADMIN_PWD }}
run: ./tools/nextcloud/startenv.bat
NC_TEST_ADDRESS: ${{ secrets.NC_TEST_ADDRESS }}
NC_TEST_ADMIN_NAME: ${{ secrets.NC_TEST_ADMIN_NAME }}
NC_TEST_ADMIN_PWD: ${{ secrets.NC_TEST_ADMIN_PWD }}
SFTP_TEST_ADDRESS: ${{ secrets.SFTP_TEST_ADDRESS }}
SFTP_TEST_USER: ${{ secrets.SFTP_TEST_USER }}
SFTP_TEST_PWD: ${{ secrets.SFTP_TEST_PWD }}
run: |
docker-compose --file ./tools/docker-compose.yml up --build -d
oscript ./tools/nextcloud/checkenv.os
# Запуск тестов и сбор покрытия кода
- name: Покрытие кода
env:
CPDB_SQL_SRVR: ${{ secrets.CPDB_SQL_SRVR }}
CPDB_SQL_USER: ${{ secrets.CPDB_SQL_USER }}
CPDB_SQL_PWD: ${{ secrets.CPDB_SQL_PWD }}
NC_ADDRESS: ${{ secrets.NC_ADDRESS }}
NC_ADMIN_NAME: ${{ secrets.NC_ADMIN_NAME }}
NC_ADMIN_PWD: ${{ secrets.NC_ADMIN_PWD }}
NC_TEST_ADDRESS: ${{ secrets.NC_TEST_ADDRESS }}
NC_TEST_ADMIN_NAME: ${{ secrets.NC_TEST_ADMIN_NAME }}
NC_TEST_ADMIN_PWD: ${{ secrets.NC_TEST_ADMIN_PWD }}
SFTP_TEST_ADDRESS: ${{ secrets.SFTP_TEST_ADDRESS }}
SFTP_TEST_USER: ${{ secrets.SFTP_TEST_USER }}
SFTP_TEST_PWD: ${{ secrets.SFTP_TEST_PWD }}
run: oscript ./tasks/coverage.os

# Удаление контейнера NextCloud
- name: Удаление контейнера NextCloud
run: ./tools/nextcloud/stopenv.bat
# Остановка и удаление контейнеров NextCloud и OpenSSH
- name: Остановка и удаление контейнеров NextCloud и OpenSSH
run: docker-compose --file ./tools/docker-compose.yml down

- name: Получение packagedef
shell: pwsh
Expand Down
192 changes: 132 additions & 60 deletions README.md

Large diffs are not rendered by default.

28 changes: 22 additions & 6 deletions lib.config
Original file line number Diff line number Diff line change
@@ -1,33 +1,49 @@
<package-def>
<class name="ПодключениеКСУБД" file="src/core/Классы/ПодключениеКСУБД.os"/>
<class name="РаботаССУБД" file="src/core/Классы/РаботаССУБД.os"/>
<class name="РаботаСЯндексДиск" file="src/core/Классы/РаботаСЯндексДиск.os"/>
<class name="РаботаСNextCloud" file="src/core/Классы/РаботаСNextCloud.os"/>
<class name="РаботаССерверомSSH" file="src/core/Классы/РаботаССерверомSSH.os"/>
<module name="ПараметрыСистемы" file="src/core/Модули/ПараметрыСистемы.os"/>
<module name="РаботаССУБД" file="src/core/Классы/РаботаССУБД.os"/>
<module name="РаботаСИБ" file="src/core/Модули/РаботаСИБ.os"/>
<module name="РаботаСФайлами" file="src/core/Модули/РаботаСФайлами.os"/>

<class name="КомандаВыполнитьПакет" file="src/cmd/Классы/КомандаВыполнитьПакет.os"/>
<class name="КомандаРаботаССУБД" file="src/cmd/Классы/КомандаРаботаССУБД.os"/>

<class name="КомандыРаботыССУБД" file="src/cmd/Классы/КомандыРаботыССУБД.os"/>
<class name="КомандаВыполнитьСкрипты" file="src/cmd/Классы/КомандаВыполнитьСкрипты.os"/>
<class name="КомандаСоздатьБазуДанных" file="src/cmd/Классы/КомандаСоздатьБазуДанных.os"/>
<class name="КомандаУдалитьБазуДанных" file="src/cmd/Классы/КомандаУдалитьБазуДанных.os"/>
<class name="КомандаСоздатьРезервнуюКопию" file="src/cmd/Классы/КомандаСоздатьРезервнуюКопию.os"/>
<class name="КомандаВосстановитьИзРезервнойКопии" file="src/cmd/Классы/КомандаВосстановитьИзРезервнойКопии.os"/>
<class name="КомандаВыполнитьКомпрессиюСтраниц" file="src/cmd/Классы/КомандаВыполнитьКомпрессиюСтраниц.os"/>
<class name="КомандаРаботаСИБ" file="src/cmd/Классы/КомандаРаботаСИБ.os"/>

<class name="КомандыРаботыСИБ" file="src/cmd/Классы/КомандыРаботыСИБ.os"/>
<class name="КомандаСоздатьСервернуюИБ" file="src/cmd/Классы/КомандаСоздатьСервернуюИБ.os"/>
<class name="КомандаВыгрузитьИБВФайл" file="src/cmd/Классы/КомандаВыгрузитьИБВФайл.os"/>
<class name="КомандаЗагрузитьИБИзФайла" file="src/cmd/Классы/КомандаЗагрузитьИБИзФайла.os"/>
<class name="КомандаОчиститьЛокальныйКэшИБ" file="src/cmd/Классы/КомандаОчиститьЛокальныйКэшИБ.os"/>
<class name="КомандаОтключитьОтХранилища" file="src/cmd/Классы/КомандаОтключитьОтХранилища.os"/>
<class name="КомандаПодключитьКХранилищу" file="src/cmd/Классы/КомандаПодключитьКХранилищу.os"/>
<class name="КомандаРаботаСФайлами" file="src/cmd/Классы/КомандаРаботаСФайлами.os"/>

<class name="КомандыРаботыСФайлами" file="src/cmd/Классы/КомандыРаботыСФайлами.os"/>
<class name="КомандаКопироватьФайл" file="src/cmd/Классы/КомандаКопироватьФайл.os"/>
<class name="КомандаРазбитьФайлНаЧасти" file="src/cmd/Классы/КомандаРазбитьФайлНаЧасти.os"/>
<class name="КомандаСоединитьЧастиВФайл" file="src/cmd/Классы/КомандаСоединитьЧастиВФайл.os"/>
<class name="КомандаПодключитьСетевойДиск" file="src/cmd/Классы/КомандаПодключитьСетевойДиск.os"/>
<class name="КомандаОтключитьСетевойДиск" file="src/cmd/Классы/КомандаОтключитьСетевойДиск.os"/>

<class name="КомандыРаботыСЯндехДиск" file="src/cmd/Классы/КомандыРаботыСЯндехДиск.os"/>
<class name="КомандаПоместитьФайлВЯДиск" file="src/cmd/Классы/КомандаПоместитьФайлВЯДиск.os"/>
<class name="КомандаПолучитьФайлИзЯДиска" file="src/cmd/Классы/КомандаПолучитьФайлИзЯДиска.os"/>

<class name="КомандыРаботыСNextCloud" file="src/cmd/Классы/КомандыРаботыСNextCloud.os"/>
<class name="КомандаПоместитьФайлВNextCloud" file="src/cmd/Классы/КомандаПоместитьФайлВNextCloud.os"/>
<class name="КомандаПолучитьФайлИзNextCloud" file="src/cmd/Классы/КомандаПолучитьФайлИзNextCloud.os"/>
<class name="КомандаПодключитьСетевойДиск" file="src/cmd/Классы/КомандаПодключитьСетевойДиск.os"/>
<class name="КомандаОтключитьСетевойДиск" file="src/cmd/Классы/КомандаОтключитьСетевойДиск.os"/>

<class name="КомандыРаботыСSFTP" file="src/cmd/Классы/КомандыРаботыСSFTP.os"/>
<class name="КомандаПоместитьФайлНаSFTP" file="src/cmd/Классы/КомандаПоместитьФайлНаSFTP.os"/>
<class name="КомандаПолучитьФайлСSFTP" file="src/cmd/Классы/КомандаПолучитьФайлСSFTP.os"/>

<module name="ЧтениеОпцийКоманды" file="src/cmd/Классы/ЧтениеОпцийКоманды.os"/>
</package-def>
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("cpdb")
.Версия("1.0.0")
.Версия("1.1.0")
.ВерсияСреды("1.7.0")
.ЗависитОт("logos")
.ЗависитОт("1commands")
Expand All @@ -10,6 +10,7 @@
.ЗависитОт("fs")
.ЗависитОт("yadisk")
.ЗависитОт("nextcloud-lib")
.ЗависитОт("ClientSSH", "0.5.0")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("asserts")
.ВключитьФайл("src")
Expand Down
38 changes: 19 additions & 19 deletions scripts/cp2test.jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ def configVer

pipeline {
agent none

environment {
src_db_cred = credentials("${env.src_db_cred}")
dst_db_cred = credentials("${env.dst_db_cred}")
dst_ib_cred = credentials("${env.dst_ib_cred}")
dst_ib_storage_cred = credentials("${env.dst_ib_storage_cred}")
src_db_cred = credentials("${env.src_db_cred}")
dst_db_cred = credentials("${env.dst_db_cred}")
dst_ib_cred = credentials("${env.dst_ib_cred}")
dst_ib_storage_cred = credentials("${env.dst_ib_storage_cred}")
}

stages {
stage('Резервное копирование базы') {
agent { label "${env.src_agent_label}"}
agent { label "${env.src_agent_label}"}
steps {
timestamps {
cmd("cpdb database --sql-srvr ${env.src_server_name} --sql-user ${src_db_cred_Usr} --sql-pwd ${src_db_cred_Psw} backup --sql-db ${env.src_db_name} --bak-path \"${env.src_bak_path}\\${env.bak_file_name}\"")
}
timestamps {
cmd("cpdb database --srvr ${env.src_server_name} --user ${src_db_cred_Usr} --pwd ${src_db_cred_Psw} backup --db ${env.src_db_name} --bak-path \"${env.src_bak_path}\\${env.bak_file_name}\"")
}
}
}

Expand All @@ -36,43 +36,43 @@ pipeline {
agent { label "${env.src_agent_label}"}
steps {
timestamps {
cmd("cpdb file putyadisk --list \"${env.src_bak_path}\\${env.list_file_name}\" --ya-token ${env.storage_token} --ya-path \"${env.storage_path}\" --delsrc");
cmd("cpdb yadisk --token ${env.storage_token} put --list \"${env.src_bak_path}\\${env.list_file_name}\" --path \"${env.storage_path}\" --delsrc");
}
}
}
stage('Получение копии из хранилища') {
agent { label "${env.dst_agent_label}"}
agent { label "${env.dst_agent_label}"}
steps {
timestamps {
cmd("cpdb file getyadisk --path \"${env.dst_bak_path}\" --ya-token ${env.storage_token} --ya-list \"${env.storage_path}/${env.list_file_name}\" --delsrc");
cmd("cpdb yadisk --token ${env.storage_token} get --path \"${env.dst_bak_path}\" --list \"${env.storage_path}/${env.list_file_name}\" --delsrc");
}
}
}

stage('Сборка частей') {
agent { label "${env.dst_agent_label}"}
agent { label "${env.dst_agent_label}"}
steps {
timestamps {
cmd("cpdb file merge --list \"${env.dst_bak_path}\\${env.list_file_name}\" --delsrc");
cmd("cpdb file merge --list \"${env.dst_bak_path}\\${env.list_file_name}\" --delsrc");
}
}
}

stage('Восстановление базы из резервной копии') {
agent { label "${env.dst_agent_label}"}
agent { label "${env.dst_agent_label}"}
steps {
timestamps {
cmd("cpdb database --sql-srvr ${env.dst_server_name} --sql-user ${dst_db_cred_Usr} --sql-pwd ${dst_db_cred_Psw} restore --sql-db ${env.dst_db_name} --bak-path \"${env.dst_bak_path}\\${env.bak_file_name}\" --create-db --shrink-db --db-owner ${env.dst_dbo} --db-path \"${env.dst_db_path}\" --db-logpath \"${env.dst_log_path}\" --db-recovery SIMPLE --db-changelfn");
cmd("cpdb database --srvr ${env.dst_server_name} --user ${dst_db_cred_Usr} --pwd ${dst_db_cred_Psw} restore --db ${env.dst_db_name} --bak-path \"${env.dst_bak_path}\\${env.bak_file_name}\" --create-db --shrink-db --db-owner ${env.dst_dbo} --db-path \"${env.dst_db_path}\" --db-logpath \"${env.dst_log_path}\" --db-recovery SIMPLE --db-changelfn");
}
}
}

stage('Подключение базу к хранилищу конфигурации') {
agent { label "${dst_ib_agent_label}"}
agent { label "${dst_ib_agent_label}"}
steps {
timestamps {
cmd("cpdb infobase uconstorage --ib-path ${dst_ib_con_string} --ib-user \"${dst_ib_cred_Usr}\" --ib-pwd \"${dst_ib_cred_Psw}\"");
cmd("cpdb infobase constorage --ib-path ${dst_ib_con_string} --storage-path ${dst_ib_storage_adr} --ib-user \"${dst_ib_cred_Usr}\" --ib-pwd \"${dst_ib_cred_Psw}\" --storage-user \"${dst_ib_storage_cred_Usr}\" --storage-pwd \"${dst_ib_storage_cred_Psw}\"");
cmd("cpdb infobase uconstorage --ib-path ${dst_ib_con_string} --ib-user \"${dst_ib_cred_Usr}\" --ib-pwd \"${dst_ib_cred_Psw}\"");
cmd("cpdb infobase constorage --ib-path ${dst_ib_con_string} --storage-path ${dst_ib_storage_adr} --ib-user \"${dst_ib_cred_Usr}\" --ib-pwd \"${dst_ib_cred_Psw}\" --storage-user \"${dst_ib_storage_cred_Usr}\" --storage-pwd \"${dst_ib_storage_cred_Psw}\"");
}
}
}
Expand Down
20 changes: 16 additions & 4 deletions src/cmd/cpdb.os
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,28 @@

Приложение.ДобавитьКоманду("database d",
"команды работы с СУБД",
Новый КомандаРаботаССУБД());
Новый КомандыРаботыССУБД());

Приложение.ДобавитьКоманду("infobase i",
"команды работы с информационными базами 1С",
Новый КомандаРаботаСИБ());
Новый КомандыРаботыСИБ());

Приложение.ДобавитьКоманду("file f",
"команды работы с файлами",
Новый КомандаРаботаСФайлами());

Новый КомандыРаботыСФайлами());

Приложение.ДобавитьКоманду("yadisk y",
"команды обмена файлами с Yandex-диском",
Новый КомандыРаботыСЯндехДиск());

Приложение.ДобавитьКоманду("nextcloud n",
"команды обмена файлами с сервисом NextCloud",
Новый КомандыРаботыСNextCloud());

Приложение.ДобавитьКоманду("sftp s",
"команды обмена файлами с SFTP-сервером",
Новый КомандыРаботыСSFTP());

Приложение.Опция("v verbose", Ложь, "вывод отладочной информации в процессе выполнения")
.Флаговый()
.ВОкружении("CPDB_VERBOSE");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
.ТСтрока()
.ВОкружении("CPDB_PARAMS");

Команда.Опция("d sql-db", "", "имя базы для резервного копирования")
Команда.Опция("d db sql-db", "", "имя базы для резервного копирования")
.ТСтрока()
.Обязательный()
.ВОкружении("CPDB_SQL_DATABASE");
Expand Down Expand Up @@ -92,11 +92,11 @@
ПараметрыСистемы.УстановитьРежимОтладки(ВыводОтладочнойИнформации);

ПараметрыПодключения = Новый Структура("Сервер, Пользователь, ПарольПользователя");
ПараметрыПодключения.Сервер = ЧтениеОпций.ЗначениеОпции("sql-srvr", Истина);
ПараметрыПодключения.Пользователь = ЧтениеОпций.ЗначениеОпции("sql-user", Истина);
ПараметрыПодключения.ПарольПользователя = ЧтениеОпций.ЗначениеОпции("sql-pwd", Истина);
ПараметрыПодключения.Сервер = ЧтениеОпций.ЗначениеОпции("srvr", Истина);
ПараметрыПодключения.Пользователь = ЧтениеОпций.ЗначениеОпции("user", Истина);
ПараметрыПодключения.ПарольПользователя = ЧтениеОпций.ЗначениеОпции("pwd", Истина);

База = ЧтениеОпций.ЗначениеОпции("sql-db");
База = ЧтениеОпций.ЗначениеОпции("db");
ПутьКРезервнойКопии = ЧтениеОпций.ЗначениеОпции("bak-path");
СоздаватьБазу = ЧтениеОпций.ЗначениеОпции("create-db");
ВладелецБазы = ЧтениеОпций.ЗначениеОпции("db-owner");
Expand All @@ -122,7 +122,7 @@
СоздаватьБазу);

Если УдалитьИсточник Тогда
РаботаССУБД.УдалитьИсточник(ПутьКРезервнойКопии);
УдалитьФайлы(ПутьКРезервнойКопии);
КонецЕсли;

Если ЗначениеЗаполнено(ВладелецБазы) Тогда
Expand Down
Loading

0 comments on commit aebb2b0

Please sign in to comment.