-
Notifications
You must be signed in to change notification settings - Fork 109
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- новый класс МенеджерВерсийФайлов1С - БДД-фича #493
- Loading branch information
Showing
5 changed files
with
217 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# language: ru | ||
|
||
Функционал: Установка номера версии или сборки файлов конфигурации, расширений, внешних обработок, отчетов | ||
Как Разработчик/Инженер по тестированию | ||
Я Хочу иметь возможность автоматической\автоматизированной установки номеров версий или сборок файлов 1С | ||
Чтобы быстро выпускать новые релизы или собирать артефакты, отличающиеся номерами | ||
|
||
Контекст: | ||
Допустим я подготовил репозиторий и рабочий каталог проекта | ||
И я подготовил рабочую базу проекта "./build/ib" по умолчанию | ||
|
||
И Я копирую каталог "xdd_test" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога | ||
|
||
И Я сохраняю значение "INFO" в переменную окружения "LOGOS_LEVEL" | ||
Дано Я очищаю параметры команды "oscript" в контексте | ||
|
||
Сценарий: Изменение версии конфигурации, указан файла конфигурации | ||
|
||
# И Я сохраняю значение "DEBUG" в переменную окружения "LOGOS_LEVEL" | ||
Тогда файл "cf/Configuration.xml" содержит "<Version>1.0.0.0</Version>" | ||
|
||
Когда Я добавляю параметр "<КаталогПроекта>/src/main.os set-version" для команды "oscript" | ||
И Я добавляю параметр "--new-version 2.0.0.0" для команды "oscript" | ||
И Я добавляю параметр "--file cf/Configuration.xml" для команды "oscript" | ||
|
||
Когда Я выполняю команду "oscript" | ||
# И Я сообщаю вывод команды "oscript" | ||
Тогда Вывод команды "oscript" содержит | ||
| Изменяю версию в исходниках конфигурации 1С на 2.0.0.0 | | ||
| Старая версия 1.0.0.0 | | ||
|
||
И Код возврата команды "oscript" равен 0 | ||
|
||
Тогда файл "cf/Configuration.xml" содержит "<Version>2.0.0.0</Version>" | ||
|
||
Сценарий: Изменение версии конфигурации, указан файл расширения | ||
|
||
Дано Я копирую каталог "cfe" из каталога "tests/fixtures" проекта в рабочий каталог | ||
Тогда файл "cfe/Configuration.xml" содержит "<Version>1.1.0.0</Version>" | ||
|
||
Когда Я добавляю параметр "<КаталогПроекта>/src/main.os set-version" для команды "oscript" | ||
И Я добавляю параметр "--new-version 2.0.0.0" для команды "oscript" | ||
И Я добавляю параметр "--file cfe/Configuration.xml" для команды "oscript" | ||
|
||
Когда Я выполняю команду "oscript" | ||
Тогда Вывод команды "oscript" содержит | ||
| Изменяю версию в исходниках конфигурации 1С на 2.0.0.0 | | ||
| Старая версия 1.1.0.0 | | ||
|
||
И Код возврата команды "oscript" равен 0 | ||
|
||
Тогда файл "cfe/Configuration.xml" содержит "<Version>2.0.0.0</Version>" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// | ||
// Служебный модуль с реализацией работы команды set-version | ||
// | ||
// Структура модуля реализована в соответствии с рекомендациями | ||
// oscript-app-template (C) EvilBeaver | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
#Использовать logos | ||
|
||
Перем Лог; | ||
|
||
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт | ||
|
||
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, " Установка номера версии файлов 1С (конфигурации, расширения, внешние обработки\отчеты)."); | ||
|
||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--new-version", | ||
"Номер версии, который нужно установить"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--file", | ||
"Путь Configuration.xml - для исходников конфигурации или расширения"); | ||
|
||
Парсер.ДобавитьКоманду(ОписаниеКоманды); | ||
|
||
КонецПроцедуры // ЗарегистрироватьКоманду | ||
|
||
// Выполняет логику команды | ||
// | ||
// Параметры: | ||
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений | ||
// ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) | ||
// | ||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт | ||
|
||
Лог = ДополнительныеПараметры.Лог; | ||
|
||
НомерВерсии = ПараметрыКоманды["--new-version"]; | ||
ПутьФайла = ПараметрыКоманды["--file"]; | ||
|
||
Лог.Информация("Изменяю версию в исходниках конфигурации 1С на %1", НомерВерсии); | ||
|
||
МенеджерВерсийФайлов1С = Новый МенеджерВерсийФайлов1С; | ||
СтараяВерсия = МенеджерВерсийФайлов1С.УстановитьВерсиюКонфигурации(ПутьФайла, НомерВерсии); | ||
|
||
Лог.Информация(" Старая версия %1", СтараяВерсия); | ||
|
||
//Сообщить(ПараметрыСистемы.ВерсияПродукта()); | ||
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; | ||
|
||
КонецФункции // ВыполнитьКоманду |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
#Использовать logos | ||
#Использовать v8runner | ||
#Использовать fs | ||
#Использовать json | ||
#Использовать v8unpack | ||
|
||
#Область ОписаниеПеременных | ||
|
||
Перем Лог; | ||
|
||
#КонецОбласти | ||
|
||
#Область ПрограммныйИнтерфейс | ||
|
||
Функция ВерсияКонфигурации(Знач ПутьФайлаКонфигурации) Экспорт | ||
|
||
//ИмяФайлаКонфигурации = ИмяФайлаКонфигурации(КаталогИсходников); | ||
Лог.Отладка("читаю версию из исходников конфигурации %1", ПутьФайлаКонфигурации); | ||
|
||
СтрокаXML = ПрочитатьФайл(ПутьФайлаКонфигурации); | ||
Результат = ВерсияКонфигурацииПоХМЛ(СтрокаXML); | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
Функция УстановитьВерсиюКонфигурации(Знач ПутьФайлаКонфигурации, Знач НовыйНомерВерсии) Экспорт | ||
|
||
Возврат ЗаписатьНомерВерсии(ПутьФайлаКонфигурации, НовыйНомерВерсии); | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
#Область СлужебныйПрограммныйИнтерфейс | ||
|
||
#КонецОбласти | ||
|
||
#Область СлужебныеПроцедурыИФункции | ||
|
||
Функция ПрочитатьФайл(Знач ПутьФайлаКонфигурации) | ||
|
||
//ИмяФайлаКонфигурации = ИмяФайлаКонфигурации(КаталогИсходников); | ||
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент(); | ||
ТекстовыйДокумент.Прочитать(ПутьФайлаКонфигурации, КодировкаТекста.UTF8); | ||
Возврат ТекстовыйДокумент.ПолучитьТекст(); | ||
|
||
КонецФункции | ||
|
||
Функция ВерсияКонфигурацииПоХМЛ(Знач ХМЛСтрокаФайлаКонфигурации) | ||
|
||
РегулярноеВыражение = Новый РегулярноеВыражение("<Version>(\d+.\d+.\d+.\d+)<\/Version>"); | ||
Совпадения = РегулярноеВыражение.НайтиСовпадения(ХМЛСтрокаФайлаКонфигурации); | ||
Если Совпадения.Количество() = 0 Тогда | ||
ВызватьИсключение "Версия проекта не определена"; | ||
КонецЕсли; | ||
|
||
Результат = Совпадения[0].Группы[1].Значение; | ||
|
||
Лог.Отладка("текущая версия %1", Результат); | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
Функция ЗаписатьНомерВерсии(ПутьФайлаКонфигурации, НомерВерсии) | ||
|
||
//ИмяФайлаКонфигурации = ИмяФайлаКонфигурации(КаталогИсходников); | ||
|
||
Лог.Отладка("устанавливаю версию %1 в исходниках конфигурации %2", НомерВерсии, ПутьФайлаКонфигурации); | ||
СтрокаXML = ПрочитатьФайл(ПутьФайлаКонфигурации); | ||
|
||
Результат = ВерсияКонфигурацииПоХМЛ(СтрокаXML); | ||
|
||
ШаблонПодстановки = СтрШаблон("<Version>%1</Version>", НомерВерсии); | ||
РегулярноеВыражение = Новый РегулярноеВыражение("(<Version>\d+.\d+.\d+.\d+<\/Version>)"); | ||
НоваяСтрокаXML = РегулярноеВыражение.Заменить(СтрокаXML, ШаблонПодстановки); | ||
|
||
ТекстовыйДокумент = Новый ТекстовыйДокумент(); | ||
ТекстовыйДокумент.УстановитьТекст(НоваяСтрокаXML); | ||
ТекстовыйДокумент.Записать(ПутьФайлаКонфигурации, КодировкаТекста.UTF8); | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
Функция ВерсияСоСборкой(Знач НомерВерсии, Знач НомерСборки) | ||
|
||
ШаблонПодстановки = СтрШаблон("$1.%1", НомерСборки); | ||
РегулярноеВыражение = Новый РегулярноеВыражение("(\d+.\d+.\d+).(\d+)"); | ||
Возврат РегулярноеВыражение.Заменить(НомерВерсии, ШаблонПодстановки); | ||
|
||
КонецФункции | ||
|
||
Функция ПутьФайлаКонфигурации(Знач КаталогИсходников) | ||
Возврат ОбъединитьПути(КаталогИсходников, "Configuration.xml"); | ||
КонецФункции | ||
|
||
Функция ПолучитьЛог() | ||
Если Лог = Неопределено Тогда | ||
Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); | ||
КонецЕсли; | ||
Возврат Лог; | ||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
ПолучитьЛог(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters