Skip to content

Conversation

khorevaa
Copy link
Member

Реализовано получение исходников через штатные механизмы, только для получения версии из хранилища конфигурации.
Тесты в стиле BDD

Частичная реализация 86

@artbear artbear self-assigned this Nov 16, 2017
@khorevaa
Copy link
Member Author

Все тесты проходят УРА!!

@nixel2007
Copy link
Member

У меня только вопросы к функциональности гитраннера в части add --all и init --bare. Вроде ж это все есть в самой библиотеке?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если добавил параметр через Парсер.ДобавитьПараметрФлагКоманды - тот тут всегда будет булево, и по умолчанию ложь. Этого условия в принципе не надо.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не во всех случая. Когда идет через пакетную синхронизацию там может быть неопределенно

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Только команда sync вызывается из кода гитсинка, остальные не вызываются

@nixel2007
Copy link
Member

Для хранилища вроде бы есть уже устоявшиеся --storage-user и --storage-pwd (деплойка/враннер).

@nixel2007
Copy link
Member

Говорят, использовать "no" в флага - нехорошо :) может развернуть это? Или даже сделать не параметр флаг, а прям именованный с true/false? На обсуждение

Copy link
Member

@artbear artbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Очень круто.
По коду у меня вопросов нет.
А вот по фичам немного есть :)

И Я создаю временный каталог и сохраняю его в контекст
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор"
Copy link
Member

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 |

и т.п.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Переделал.

@artbear
Copy link
Member

artbear commented Nov 16, 2017

Что-то я по коду пропустил замечания :( видимо, пора домой.

И Код возврата команды "gitsync" равен 0

Сценарий: Синхронизация хранилища с git-репозиторием без tool1CD
Допустим Я добавляю параметр "-dontUseTool1cd" для команды "gitsync"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю имя флага -useVendorUnload вместо -dontUseTool1cd

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Заменил.

@khorevaa
Copy link
Member Author

@nixel2007 - смотрел библиотеку gitrunner и таких функций неть.

@nixel2007
Copy link
Member

nixel2007 commented Nov 17, 2017 via email

И Я добавляю параметр "-userRep" для команды "gitsync" со значением "Администратор"
И Я добавляю параметр "-push-every-n-commits" для команды "gitsync" со значением "5"
И Я добавляю параметр "-dontUseTool1cd" для команды "gitsync"
И Я добавляю параметр "-process-fatform-modules" для команды "gitsync"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"-process-fatform-modules" специально убрал или случайно потерялось?

Copy link
Member Author

@khorevaa khorevaa Nov 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Потерялось... ))) вернул

@khorevaa
Copy link
Member Author

@nixel2007 @artbear А что с сервером сборок почему то падает сборка.. До теста и не доходит

Copy link
Member

@artbear artbear left a 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|
Процедура ЯДобавляюПараметрыДляКоманды(Знач ИмяКоманды, Знач ТаблицаПараметров) Экспорт
Copy link
Member

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) Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Знач ПарамСтрока1, Знач ПарамСтрока2 нужно переименовать для большей прозрачности кода

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сделал

КонецПроцедуры

//я инициализрую связь с внешним репозиторием
Процедура ЯИнициализруюСвязьСВнешнимРепозиторием() Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Насколько я вижу, шаг ЯИнициализруюСвязьСВнешнимРепозиторием больше не юзается.
Удалишь?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сделал

@artbear
Copy link
Member

artbear commented Nov 17, 2017

Запустил сборку по новой

@artbear artbear added this to the 2.3.0 milestone Nov 17, 2017
@khorevaa
Copy link
Member Author

@artbear - а что ты ставишь все версию 2.3.0 в мейлстоуне - если она уже выпущена?

@artbear
Copy link
Member

artbear commented Nov 17, 2017

Не знал :)

@artbear
Copy link
Member

artbear commented Nov 17, 2017

А если серьезно, забыл майлстоун поправить :(

@khorevaa
Copy link
Member Author

khorevaa commented Nov 17, 2017

Надо в develop все слить, а то я хочу сделать в ближайшее время систему плагинов для gitsync. Что позволен убрать кучу параметров вынеся их в плагины.

@artbear artbear modified the milestones: 2.3.0, 2.4.0 Nov 17, 2017
Copy link
Member

@artbear artbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Последнее замечание исправляй.
И замержу

Copy link
Member

@artbear artbear Nov 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Код нужно убрать, т.к. параметр флаг всегда прилетает правильно.

Если НеИспользоватьTool1CD = Неопределено Тогда
 +		
 +		НеИспользоватьTool1CD = Ложь; // по умолчанию используем tool1cd
 +			
 +	КонецЕсли;

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А вот и нет. Когда идет пакетная синхронизация может прилететь Неопределено.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поясни, что это значит.
По коду команда Export и ее метод ВыполнитьКоманду никак не вызывается из других команд.
Значит, только штатная работа через cmdline, который вернет флаг правильно.

Copy link
Member Author

@khorevaa khorevaa Nov 17, 2017

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", ЗначенияПараметров);

Если флага в настройке нет, тогда будет подставлено неопредленно

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Посмотрел код sync, увидел проблему.
Значит, это API sync плохое.
Вообще, зачем его вызывать через ВыполнитьКоманду?
Лучше выделить отдельный класс/метод, которому можно будет передать чистые параметры, без лишних/странных преобразований с магическими именами ключей

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Создал #99

Copy link
Member

@artbear artbear Nov 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Код нужно убрать, т.к. параметр флаг всегда прилетает правильно.

Если НеИспользоватьTool1CD = Неопределено Тогда
 +		
 +		НеИспользоватьTool1CD = Ложь; // по умолчанию используем tool1cd
 +			
 +	КонецЕсли;

@artbear artbear merged commit 1387bc3 into oscript-library:develop Nov 17, 2017
@khorevaa khorevaa deleted the feature/add-v8storage branch May 29, 2018 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants