-
Notifications
You must be signed in to change notification settings - Fork 93
Получение исходников конфигурации через штатные механизмы платформы #97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Получение исходников конфигурации через штатные механизмы платформы #97
Conversation
Все тесты проходят УРА!! |
У меня только вопросы к функциональности гитраннера в части add --all и init --bare. Вроде ж это все есть в самой библиотеке? |
src/core/Классы/КомандаExport.os
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если добавил параметр через Парсер.ДобавитьПараметрФлагКоманды - тот тут всегда будет булево, и по умолчанию ложь. Этого условия в принципе не надо.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не во всех случая. Когда идет через пакетную синхронизацию там может быть неопределенно
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Только команда sync вызывается из кода гитсинка, остальные не вызываются
Для хранилища вроде бы есть уже устоявшиеся --storage-user и --storage-pwd (деплойка/враннер). |
Говорят, использовать "no" в флага - нехорошо :) может развернуть это? Или даже сделать не параметр флаг, а прям именованный с true/false? На обсуждение |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Очень круто.
По коду у меня вопросов нет.
А вот по фичам немного есть :)
features/gitsync-sync.feature
Outdated
И Я создаю временный каталог и сохраняю его в контекст | ||
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория" | ||
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория" | ||
И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
портянка шагов из
И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор"
странновато выглядит.
есть же простые шаги
Когда Я добавляю параметр "--version" для команды "git"
или
Когда Я добавляю параметры для команды "oscript"
| -version |
| -encoding=utf-8 |
т.е. можно
1 или юзать простой шаг Я добавляю параметр "-userRep Администратор" для команды "git"
с передачей в одном параметре нужных настроек вместо И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор"
2 или еще проще и нагляднее
Когда Я добавляю параметры для команды "oscript"
| -userRep Администратор |
| -push-every-n-commits 5 |
и т.п.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Переделал.
Что-то я по коду пропустил замечания :( видимо, пора домой. |
features/gitsync-sync.feature
Outdated
И Код возврата команды "gitsync" равен 0 | ||
|
||
Сценарий: Синхронизация хранилища с git-репозиторием без tool1CD | ||
Допустим Я добавляю параметр "-dontUseTool1cd" для команды "gitsync" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю имя флага -useVendorUnload
вместо -dontUseTool1cd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Заменил.
@nixel2007 - смотрел библиотеку gitrunner и таких функций неть. |
Значит надо добавить. Повесь ишузы, пожалуйста.
2017-11-17 12:27 GMT+03:00 Aleksey Khorev <[email protected]>:
… @nixel2007 <https://github.com/nixel2007> - смотрел библиотеку gitrunner
и таких функций неть.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABFJKJEKci5N0WmcaT_9Ig7tiwXB8IAXks5s3VFpgaJpZM4QgkrA>
.
|
features/gitsync-sync.feature
Outdated
И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор" | ||
И Я добавляю параметр "-push-every-n-commits" для команды "gitsync" со значением "5" | ||
И Я добавляю параметр "-dontUseTool1cd" для команды "gitsync" | ||
И Я добавляю параметр "-process-fatform-modules" для команды "gitsync" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"-process-fatform-modules" специально убрал или случайно потерялось?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Потерялось... ))) вернул
@nixel2007 @artbear А что с сервером сборок почему то падает сборка.. До теста и не доходит |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отдохнул и накинул еще замечаний
//Я добавляю параметры для команды "gitsync" | ||
//|--storage-user Администратор| | ||
//|-useVendorUnload| | ||
Процедура ЯДобавляюПараметрыДляКоманды(Знач ИмяКоманды, Знач ТаблицаПараметров) Экспорт |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А зачем ты дублируешь шаг? ведь он уже есть в 1bdd/features/lib, который по умолчанию подключается при запуске.
Я специально давал ссылку на шаг, чтобы ты его использовал, а не писал с нуля :)
КонецПроцедуры | ||
|
||
//я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория" | ||
Процедура ЯИнициализируюСвязьСВнешнимРепозиторием(Знач ПарамСтрока1, Знач ПарамСтрока2) Экспорт |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Знач ПарамСтрока1, Знач ПарамСтрока2
нужно переименовать для большей прозрачности кода
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сделал
КонецПроцедуры | ||
|
||
//я инициализрую связь с внешним репозиторием | ||
Процедура ЯИнициализруюСвязьСВнешнимРепозиторием() Экспорт |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Насколько я вижу, шаг ЯИнициализруюСвязьСВнешнимРепозиторием
больше не юзается.
Удалишь?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сделал
Запустил сборку по новой |
@artbear - а что ты ставишь все версию 2.3.0 в мейлстоуне - если она уже выпущена? |
Не знал :) |
А если серьезно, забыл майлстоун поправить :( |
Надо в develop все слить, а то я хочу сделать в ближайшее время систему плагинов для gitsync. Что позволен убрать кучу параметров вынеся их в плагины. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Последнее замечание исправляй.
И замержу
src/core/Классы/КомандаExport.os
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Код нужно убрать, т.к. параметр флаг всегда прилетает правильно.
Если НеИспользоватьTool1CD = Неопределено Тогда
+
+ НеИспользоватьTool1CD = Ложь; // по умолчанию используем tool1cd
+
+ КонецЕсли;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А вот и нет. Когда идет пакетная синхронизация может прилететь Неопределено.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Поясни, что это значит.
По коду команда Export и ее метод ВыполнитьКоманду никак не вызывается из других команд.
Значит, только штатная работа через cmdline, который вернет флаг правильно.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вопрос в рабоче через класс "ПакетнаяСинхронизация", там
ЗначенияПараметров = Новый Соответствие;
ЗначенияПараметров.Вставить("ПутьКХранилищу", Репо.КаталогХранилища1С);
ЗначенияПараметров.Вставить("URLРепозитория", Репо.GitURL);
ЗначенияПараметров.Вставить("ЛокальныйКаталогГит", Репо.КаталогВыгрузки);
ЗначенияПараметров.Вставить("-email", Репо.ДоменПочтыДляGit);
ЗначенияПараметров.Вставить("-v8version", Репо.ПутьКПлатформе83);
ЗначенияПараметров.Вставить("-push-every-n-commits", Репо.КоличествоКоммитовДоPush);
ЗначенияПараметров.Вставить("-check-authors", ПреобразоватьЗначениеКБулево(Репо.ПроверитьАвторовХранилища));
ЗначенияПараметров.Вставить("-stop-if-empty-comment", ПреобразоватьЗначениеКБулево(Репо.ПрерватьВыполнениеБезКомментарияКВерсии));
ЗначенияПараметров.Вставить("-auto-set-tags", ПреобразоватьЗначениеКБулево(Репо.АвтоматическаяУстановкаТэговПоВерсиям));
ЗначенияПараметров.Вставить("-process-fatform-modules", ПреобразоватьЗначениеКБулево(Репо.ПереименовыватьФайлМодуляОбычнойФормы));
// дополним настройками из параметров команды
Для Каждого ПараметрКоманды Из мПараметрыКоманды Цикл
ЗначенияПараметров.Вставить(ПараметрКоманды.Ключ, ПараметрКоманды.Значение);
КонецЦикла;
МенеджерКомандПриложения.ВыполнитьКоманду("sync", ЗначенияПараметров);
Если флага в настройке нет, тогда будет подставлено неопредленно
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Посмотрел код sync, увидел проблему.
Значит, это API sync плохое.
Вообще, зачем его вызывать через ВыполнитьКоманду?
Лучше выделить отдельный класс/метод, которому можно будет передать чистые параметры, без лишних/странных преобразований с магическими именами ключей
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Создал #99
src/core/Классы/КомандаSync.os
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Код нужно убрать, т.к. параметр флаг всегда прилетает правильно.
Если НеИспользоватьTool1CD = Неопределено Тогда
+
+ НеИспользоватьTool1CD = Ложь; // по умолчанию используем tool1cd
+
+ КонецЕсли;
Реализовано получение исходников через штатные механизмы, только для получения версии из хранилища конфигурации.
Тесты в стиле BDD
Частичная реализация 86