После краткого размышления я бы предположил, что это может быть даже более важным для индивидуального разработчика, чем для команды.
На самом базовом уровне CI-сервер демонстрирует, что вы можете создавать свое приложение с нуля из выделенного источника - в сочетании с приличным набором тестов он должен продемонстрировать, что вы можете создавать и запускать с нуля.
Поскольку одна из вещей, которые я пытаюсь сделать, состоит в том, чтобы убедиться, что моя сборка включает развертываемый пакет, вы также знаете, что вы можете получить что-то для развертывания (чистое и из известного состояния / версии).
Фактически, теперь, когда вы выполняете File | New Project, вам, вероятно, следует включить создание или добавление в свой репозиторий, а также настройку сценария сборки CI и настройку развертывания (даже если это всего лишь архивирование материала для развертывания xcopy).
Приложение (2016) - в настоящее время моя система CI также будет неотъемлемой частью моего процесса развертывания, поэтому ее ценность возросла, и я абсолютно не буду запускать какой-либо поставляемый проект без него. Автоматическое развертывание с помощью кнопок снимает большую нагрузку с процесса, и, в некотором смысле, форма или форма сервера сборки является неотъемлемой частью этого процесса.
Когда я выполняю только один, я просто строю и тестирую перед тем, как делать это. Я обычно использую цель makefile, например:
Это конфигурирует, строит, запускает все тесты (с учетом valgrind), запускает линты и т. Д. Поскольку я знаю, что я буду единственным, кто продвинется, мне действительно не нужна мощь чего-то вроде Хадсона.
Кроме того, в среде, где у вас есть несколько веток, питающих основной репозиторий, если все следуют процедуре всегда, прежде чем вы фиксируете или отправляете, сервер CI может быть немного перебит. Хорошо написанное правило, что автор того, что сломало последнюю сборку, покупает пиццу в пятницу, обычно делает все очень гладко :)
Если он попадает в ситуацию, когда проект четко разделен на подсистемы, у которых есть свои лидеры, вам действительно нужно подумать об использовании чего-то вроде Hudson. Кто-то может провести локальные тесты, проиграть гонку с другой подсистемой и в итоге выдвинуть что-нибудь токсичное.
Кроме того, если вы поддерживаете форк быстро движущегося проекта (например, свой собственный набор патчей для ядра Linux), вам следует подумать об использовании чего-то вроде Hudson, даже если вы «одиноки» в этом проекте. Это особенно верно, если вы разветвляетесь / перебазируете прямо с магистрали.
источник
make: don't know how to make sense. Stop
. Argh!Я бы не сказал, что это просто приятный бонус, я бы сказал, что это жизненно важно для разработки программного обеспечения высокого качества для нас, сольных исполнителей. Большинство из нас немного упустят свои стандарты качества, если поспешат, если посчитают, что это достаточно легко исправить позже. Если вы фиксируете программное обеспечение в этом состоянии, у вас по сути будет бесполезная кодовая база, хранящаяся в вашем контроле исходного кода.
Если соблюдается должным образом (то есть вы не пропускаете тесты и проверяете, что они собираются каждый раз, когда вы делаете коммит), CI заставляет вас придерживаться более высокого стандарта качества, чем если бы вы все равно его зафиксировали.
источник
Это важно, если вы хотите сократить время ожидания, чтобы увидеть, все ли идет хорошо. Хотя вы можете заставить свою среду IDE скомпилировать материал для себя сразу после сохранения, она не запускает автоматически модульные тесты, поэтому мой CI-сервер запускает модульные тесты и отчеты о покрытии тестовых случаев и другой анализ качества моего кода, как только Я толкаю это.
Единственный триггер, который мне нужно сделать, - это нажать мои текущие изменения в управлении версиями, и я могу вернуться к кодированию. И пока я думаю о кодировании, система CI занята созданием длинных многословных отчетов о качестве, которые я буду смотреть время от времени, когда у меня затишье.
У меня есть отдельная машина VMWare на том же ноутбуке, которая выполняет сборки для кода, который я вставляю. Для этого я просто получаю образ VMWare для Linux под ключ и устанавливаю jenkins с помощью apt-get и делаю несколько небольших изменений конфигурации.
источник