git просто воспроизводит коммиты из X на FB?
blockquote>Да.
Если вы сравните эту историю
FB
до и после перебазирования, вы увидите, что все идентификаторы коммитов изменились, потому что коммиты были заново созданы.Бесплатный Pro Git включает в себя диаграммы , что делает это легче следовать.
Можно запустить путем изучения Круиз-контроля.
Существует также CruiseControl.net, если это - Ваш яд.
По существу, хотя, Вам нужны следующие компоненты:
В этом сценарии, действиях CruiseControl как Сервер интеграции Continous, и может удостовериться, что у Вас есть сборки, сделанные, поскольку Вы регистрируетесь в своем коде. Это означает, что Вы знаете, повреждается ли сборка более быстрая, чем если бы у Вас просто были ночные сборки. У Вас должны, вероятно, также быть ночные сборки, все же.
Гудзоном является большой CI.
Мы выполняем ферму локально, но мы запустили путем загрузки hudson.war и выполнение
Java - банка hudson.war
Это интегрируется с SCM, системы грузоперевозок ошибки, это является действительно потрясающим.
Вам будет нужно некоторое дисковое пространство, если Вы захотите сохранить старую сборку.
Наслаждайтесь им, большая часть простого решения CI до сих пор.
HTH, Hubert.
При использовании Круиз-контроля место для запуска является Муравьем build.xml, который делает задание вручную.
Вам нужна система управления версиями, которая может сделать маркированный контроль.
Вам нужны тесты JUnit, чтобы выполнить использование задачи Ant и генерировать отчеты HTML.
В идентификаторе говорится, что необходимо было бы запустить путем реализации стратегии сборки, таким образом, можно создать код структурированным способом - я использую NANT.
Для основного сервера сборки - используют одно из предложений CI там, которое контролирует Ваше управление исходным кодом и инициировало сборку каждый раз, когда изменение обнаруживается. например: cruiseControl.
После того как Вы собираетесь, основная сборка - добавляют выполнение Ваших модульных тестов после успешно сборка.
Самая успешная система, которую я имел в распоряжении, имела 3 различных сборки:-та, которая стреляла в регистрацию - все это сделало был создать код. - по требованию тот, который создал бы приложение, генерирует установщик и затем поместил установщик в общий диск для тестеров для взятия - ежедневная сборка, которая стреляла в 22:00. Это: - выполнил некоторую генерацию кода для создания DB, и код C# из модели UML - создают код - создал нового пользователя верификации сборки на тестовом экземпляре оракула - работал, схема приложения в дб - исчерпала набор модульных тестов - очистил пользователя дб (если тесты были успешны) - выполнил анализ покрытия для создания сообщения о покрытии кода единицы
Программное обеспечение, которое мы использовали для этого, было NANT, CruiseControl.NET, системой поколения пользовательского кода, пользовательское приложение для создания схемы оракула и NCover для анализа кода.
Запустите при наличии чтения превосходной статьи Martin Fowler о Непрерывной Интеграции.
Мы создали такую систему для главного проекта> 2,000 kSLOC, и это оказалось, чтобы быть неоценимым.
HTH
удачи,
Ограбить
Я не мог дать Вам все подробности о том, как мы настраиваем наш сервер сборки (я был только вовлечен в запуске), но:
Мы используем его для сборок, инициированных фиксацией: они просто создают двоичные файлы и выполняют модульные тесты. Отсюда, мы можем сделать полную сборку, которая делает MSI также. Оттуда, у нас есть сборки тестирования системы, которые запускают больше всесторонних тестов, через среду, созданную с виртуальными машинами (с отдельным контроллером домена, полем SQL Server, и т.д.). Когда тестирование системы передает, сборка сделана доступной для нашего отдела QA по ручному тестированию и некоторым регрессионным тестам, которые мы еще не автоматизировали.
Круиз, Знаток, Гудзон и т.д. является всем великим, но, который всегда стоит иметь временное решение.
У Вас должны быть пакетный файл, сценарий оболочки или просто записанные инструкции, которые позволят Вам выполнять сборку от любой машины. У нас были серверы сборки, недоступные в прошлом, и способность переключиться быстро на другую машину была неоценима!
Спецификация машины сборки не должна быть важной, если у Вас нет проекта монстра. Мы пытаемся подавить наше время изготовления к 10 минутам (включая модульные тесты), и у нас есть довольно большой проект.
Не испытывайте желание создать или записать Вашу собственную систему сборки, потому что "ни один из инструментов там не достаточно хорош". Все современные системы сборки позволяют Вам писать плагины, чтобы сделать пользовательский материал.
Я использую Cruisecontrol.NET и msbuild buildscript.
Я могу использовать buildscript вручную так, чтобы я мог получить последнюю версию кодовой базы, создал кодовую базу очень легко использование командной строки. (Это очень интересно, если Вы работаете над приложением, которое состоит из нескольких решений).
Рядом с этим мой CruiseControl.NET buildserver использует этот buildscript также. Это проверяет равный интервал, если были изменения, согласился на управление исходным кодом.
Если это происходит, CC.NET работает, 'добираются - последняя' задача, которую я определил в buildscript, сборки все, выполняет модульные тесты и выполняет статический анализ кода (fxcop).
Мой 'buildserver' является просто старой рабочей станцией. Это - PIV, 3 ГГц с 1 ГБ RAM, и это делает свое задание отлично.
Одна дополнительная вещь, которую я нашел бы интересным, состоит в том, чтобы иметь способность автоматически развернуть новую версию или создать установку. Я еще не сделал этого, так как я не уверен, является ли это хорошей идеей, и при этом я не нашел, что хорошая стратегия все же делает так... Я имею в виду; действительно ли развертывание является новой версией некоторых компонентов в производство для важнейшего приложения хорошая идея? Я не думаю так...
Я думаю, что это - хорошее место для запуска: [http://confluence.public.thoughtworks.org/display/CC/Home;jsessionid=5201DA7E8D361EB164C40E519DA0F0DE] [1]
По крайней мере, это - то, где я начал смотреть при установке моего сервера сборки.:)
[1]: Дом CruiseControl
В пространстве Java я протестировал большинство доступных сред сборки. Проблема с автоматической сборкой - то, что Вы довольно часто заканчиваете тем, что тратили изрядное количество времени, развивая ее. После того, как мы переключились на коммерческий бамбук от atlassian, мы нашли, что должны провести намного меньше времени, балуя поле сборки, которое в нашем случае оказывается очень хорошей экономикой. Бамбук также поддерживает кластеризацию, таким образом, можно добавить недорогие поля, поскольку потребности развиваются.
Попробуйте и найдите что-то, что согласуется с Вашими существующими методами с точки зрения создания - например, это не будет хорошей подгонкой к попытке, и используйте Основанный на муравье buildserver при использовании Знатока, например!
Идеально, это должно просто смочь контролировать Вашу систему управления исходным кодом, контроль код, сборка, запустить некоторые тесты и опубликовать результаты без Вас являющийся знающим об этом, или по крайней мере не, 'пока это не сообщает об отказе. Лично, я предложил бы Гудзон (https://hudson.dev.java.net/) как хорошая начальная точка, поскольку это легко быть установленным и выполнение и имеет достойный UI.
Roughly in order - minimal/least sophisticated through more sophisticated
Не бойтесь начать с командных файлов, сценариев оболочки или других специальных средств. Люди делали совершенно хорошее программное обеспечение до повального увлечения CI. до Hudson и Cruise Control было много хороших процессов - (я не отбиваю тех или иных - я использую Hudson среди других) - но не упускайте из виду главное - эти вещи здесь, чтобы помочь вам - а не стать властным процессом)
We start by writing batch scripts that will run on the developers machine. Once we have all the processes automated, we move them to the build server.
On the tools side we are currently moving from Cruise Control to TFS.