Как стать автором
Обновить

Комментарии 6

Я смотрю в вашей статье довольно развесистые цепочки билд-конфигураций, и у меня родился вопрос слегка оффтопный. На меня недавно повесили работу с билдами в TC, я в этом ещё неопытен, и я столкнулся с проблемой: вот сделал я (или предыдущий инженер) цепочку конфигураций, в ней было сделано несколько релизов, эти билды пометили pinned для истории. А через некоторое время решили, что цепочка неоптимальна, и её надо поменять — часть конфигураций удалить, часть добавить. Но вот беда: нужно сохранить все pinned-билды и артефакты, в т.ч. промежуточные. Как это правильно сделать? Как удалять старые ненужные конфигурации, не теряя исторические билды?

Вы можете сохранить «build configuration ID» в новых билдах или выполнить процедуру «Attach build history», подробнее на этой странице.

В TC 2020.1.2 не вижу пункта "Attach build history" — это в 2020.2 появилось? Это действие сливает истории двух конфигураций вместе, или замещает одну историю другой?

Attach build history существует фактически для одного use case. Если вы храните настройки в DSL и решили поменять id некоторых конфигураций, то после применения DSL на сервере вы можете обнаружить что у этих конфигураций больше нет истории билдов. Так как история как раз к id и была привязана. Здесь как раз и используется Attach build history action для того чтобы найти потерянную историю и перепривязать её к нужной конфигурации. Action просто так не появляется, только если сервер видит что такая потерянная история есть. Мне кажется что Attach build history не совсем про ваш use case.
Тут противоречивые требования. С одной стороны хочется удалить что то, с другой хочется сохранить эти артефакты. Ну как вариант, можно артефакты перенести в другое место.

Либо, для релизов всегда делать копии проектов. Тогда релиз остаётся нетронутым, и продолжает работать как работал, а в транке/мастере всё переделывается. Как правило такой подход лучше потому что всегда должна быть возможность выпустить срочных хотфикс и для этого лучше оставлять релизные конфигурации нетронутыми, как они были в момент релиза.
Тут противоречивые требования. С одной стороны хочется удалить что то, с другой хочется сохранить эти артефакты.

Удалить хочется билд-конфигурации (т.е. по сути шаги для создания билда), а сохранить хочется сделанные билды. Сейчас, по сути, история билдов прибита к конфигурациям, её нельзя оторвать, не потеряв, нельзя перенести в другое место (внутри ТС), нельзя слить две истории в одну.


как вариант, можно артефакты перенести в другое место.

Тогда потеряется мета-информация: теги, комменты, ссылки на багтрекер и проч. Но, возможно, вы правы, и действительно, использовать TC как постоянное хранилище артефактов — это неправильно, и нужно заводить отдельный сервис.


Либо, для релизов всегда делать копии проектов.

Если множить копии, тогда быстро упрёшься в лимит лицензии на число конфигураций.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.