Каковы ваши шаги сборки и выпуска? Когда увеличивать номера сборки? - PullRequest
3 голосов
/ 16 апреля 2010

У меня проблемы с определением и автоматизацией процесса сборки, несмотря на простые требования:

  1. Каждая сборка должна иметь уникальный номер сборки.
  2. Каждый помеченный релиз должен быть воспроизводимым

Что у меня есть:

  • C ++, Red Hat Enterprise Linux 5.x, среда разработки Subversion.
  • Сборочная машина (фактически виртуальная машина)
  • Файл version.h с #defines для major, minor и buildnumber.
  • Скрипт для увеличения номера сборки version.h.
  • Файл спецификации rpmbuild, который экспортирует помеченный источник Subversion, создает и создает пакеты установщика rpm.

Вопросы:

  • Если предположить наличие нескольких разработчиков на проект, когда следует увеличить номер сборки и зарегистрировать файл version.h? Строительная машина? Какой-то хук Subversion? До сборки или после сборки?

Заранее благодарим тех, кто хочет уделить время и поделится своим опытом с процессами сборки.

Эд Linux новичок. Бывший разработчик Windows C ++ / .NET.

Ответы [ 3 ]

1 голос
/ 16 апреля 2010

Не храните номер сборки непосредственно в вашем файле, используйте номер редакции subversion (или другое монотонно увеличивающееся значение, такое как дата / время) в качестве идентификатора сборки. В прошлом я использовал значение date -u +"%Y%m%d%H%M%S", так как мы использовали CVS, а не SVN.

1 голос
/ 16 апреля 2010

У нас есть команды из более 40 разработчиков, которые добавляют код в наш продукт. Каждый разработчик представляет свои изменения в центральном местоположении для продукта. Это формирует упорядоченный список представлений кода. Затем сценарии принимают каждую отправку и интегрируют ее в тестовую сборку на основе последней выпущенной конфигурации и любых предыдущих представленных изменений в текущем раунде. Модульные тесты запускаются после компиляции каждого кода, также запускаются все приемочные тесты, добавленные в текущем раунде. В конце каждого дня юнит-тесты и регрессионные тесты запускаются против развивающейся сборки.

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

1 голос
/ 16 апреля 2010

Почему бы не изменить процесс сборки, чтобы он брал последний номер редакции из хранилища и использовал его в качестве номера сборки?

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

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

...