Вы помещаете сборки в репозиторий исходного кода?

Я действительно люблю Мерзавца, особенно с GitHub. Это - настолько хорошая способность фиксировать и откатывать локально. И избирательный подход к выбору слияний, в то время как не тривиальный, не является ужасно трудным, и намного более усовершенствованным, чем что-нибудь, Svn или CVS могут сделать.

10
задан Jin Kim 31 July 2009 в 16:05
поделиться

10 ответов

Мы архивируем выпуски в структуру каталогов и помечаем соответствующие версии в системе контроля версий. Это дает нам доступ к собранным версиям и источнику, который их сгенерировал.

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

21
ответ дан 3 December 2019 в 14:25
поделиться

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

И вы всегда можете иметь отдельный репозиторий для скомпилированных артефактов.

4
ответ дан 3 December 2019 в 14:25
поделиться

Если вы сможете создать достаточно хорошую систему сборки, которая воссоздать точную сборку с проверкой кода тривиально, я не Я не считаю, что есть какая-то необходимость хранить ваши сборки в репозитории.

По большей части я не храню конкретные сборки своего кода, но я храню определенные версии библиотек, на которые опирается мой код. Несколько месяцев назад я приложил много усилий, чтобы упростить загрузку тега и набрать «муравей», и все построится правильно, не полагаясь ни на что за пределами дерева. (за исключением правильных javac и ant) ​​

К сожалению, у некоторых из нашей кодовой базы нет такой хорошей системы сборки (например, требуется ручная настройка SDK, получение различных внешних библиотек и поиск переменных среды), и было бы трудно воссоздать точно конкретную версию сборки на основе репозитория (мы постоянно движемся вперед и не поддерживаем старый код, поэтому разработчики

4
ответ дан 3 December 2019 в 14:25
поделиться

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

Однако вы должны убедиться, что вы также сохраните в репозитории все, что может потребоваться для воссоздания этой точной сборки, если это необходимо. . Вы должны использовать постоянную маркировку / маркировку, чтобы облегчить это. Возможно, вам потребуется протестировать исправление ошибки с разными версиями различных компонентов, и в зависимости от сложности вашей системы в целом вы можете попробовать различные комбинации.

0
ответ дан 3 December 2019 в 14:25
поделиться

Поместите определенные клиентские версии в репозиторий.
Теоретически в этом нет необходимости, поскольку мы всегда можем воспроизвести эту версию, но приятно иметь возможность просто получить точный .msi, который был отправлен определенному клиенту в определенную дату - затем мы тестируем это в чистой виртуальной машине.

Одна из причин заключается в том, что он защищает вас от любых изменений за пределами вашей среды сборки, например, от обновления Windows или Visual Studio. Возможно, вы не сможете воспроизвести битовую сборку msi, если сам msi обновился!

0
ответ дан 3 December 2019 в 14:25
поделиться

Я храню сборки в папке на сервере, и они регулярно копируются. Но я помечаю ревизию, которая представляет эту сборку. В папке сборки я храню не только исполняемые файлы, двоичные файлы или страницы (в нашем случае ASP.Net), но и сценарии изменений, которые мы получаем из SQL Delta.

Теги имеют тот же идентификатор, что и поля, поэтому если у вас есть сборка "System_2009-07-30-01", у вас будет тег с этим именем. Поэтому, если вам нужно что-то исправить, вы просто смотрите на название сборки, смотрите тег, а затем смотрите нужную вам ревизию, чтобы увидеть, что может происходить.

3
ответ дан 3 December 2019 в 14:25
поделиться

Я не думаю, что есть веская причина для версии фактического построить. Пометьте исходную версию и сделайте так, чтобы только контролируемая группа имела доступ к изменению тегов. Для тега сборки никогда не должно производиться проверка, поэтому воссоздание сборки должно быть тривиальным делом.

2
ответ дан 3 December 2019 в 14:25
поделиться

Мы помечаем репозиторий для любой сборки, чтобы мы могли получить фактический источник для любого номера сборки, а затем архивируем и загружаем фактический опубликованные файлы сборки, которые фактически развернуты - просто чтобы убедиться, что во время развертывания нет скрытых настроек конфигурации в последнюю минуту и ​​т. д., которые не отражены в самой магистрали.

1
ответ дан 3 December 2019 в 14:25
поделиться

Чтобы смягчить опасения, что старые инструменты сборки могут не работать в новой среде, мы архивируем образы наших машин сборки для основных выпусков. Для нас это легко сделать, потому что наши машины сборки виртуализированы. Это план Б на случай, если другие средства не сработают.

0
ответ дан 3 December 2019 в 14:25
поделиться

Иногда. В большинстве случаев ответ будет нет , но все же есть сценарии, в которых, если это имеет смысл, сделайте это.

Кстати, я удивлен, что это все еще открыто. Голосование за эти вопросы типа обсуждения обычно закрывается менее чем за 5 минут.

0
ответ дан 3 December 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: