CI

Dec. 11th, 2012 09:43 pm
metaclass: (Default)
[personal profile] metaclass
Думал, чем бы сделать уведомления о завершении или сломе билда, потому что за 10 минут тестовой сборки обязательно куда-нибудь отвлекут. Если с завершением проблем никаких нету - у меня все собирается MSBuild и в конец проекта я просто сунул проигрывание гаммы пищалкой, то с сломом все плохо - вроде 3.5 MSBuild не умеет события "выполнить при ошибке".

Втащил вот такое: http://www.cruisecontrolnet.org/projects/ccnet/wiki#Get-started-with-CruiseControlNET
Адова содомия. Документирована хреново, но поднимается с полпинка, вроде работает. Причем вроде нормально интегрируется с моей msbuild чернью - автоматом вытаскивает из hg обновления, при их наличии делает билд, иначе считает, что с прошлого раза ничего не изменилось.
Смотреть более навороченные решения как-то влом, если это перестанет устраивать - тогда и подумаю.

PS: Бугога, дичайшая польза. Я еще даже не настроил билд целиком - а оно уже носом тыкает меня в мои ошибки.

Date: 2012-12-11 07:22 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
о, я такое в одной известной Корпорации настраивал
там ещё светофор есть и уведомления на мыло

Date: 2012-12-11 07:24 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Вот, я ради светофора и мыла и втащил :)

Date: 2012-12-11 07:38 pm (UTC)
From: [identity profile] aamonster.livejournal.com
Да в них во всех есть, и настраиваются все с полпинка. Я как-то своё поделие на батниках, мсбилде и планировщике заменял на TeamCity - сборка заметно упростилась.

Date: 2012-12-11 07:45 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
А мы CI допиливали сами. Доп. страницы для заказчиков чтобы скачивать билды и т.п. Шо касается уведомлений, они слались скриптом на gtalk.

Date: 2012-12-11 07:47 pm (UTC)
From: (Anonymous)
В самом MSBuild можно Хотя СС.NET, конечно, правильнее.

Date: 2012-12-11 08:02 pm (UTC)
From: (Anonymous)
Что-то оно не пропустило. В самом скрипте можно указать OnError.

Date: 2012-12-11 07:56 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Команда сборки ядра Linux в текущем моём проекте (чисто моя, не в составе сборочной системы):

(make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage && cp arch/arm/boot/zImage /media/KERNEL/ && umount /media/KERNEL && notify-send -i ~/.autotest_images/pass.png "Compiled" ) || notify-send -i ~/.autotest_images/fail.png "Failed"

По окончании сборки вываливается смайлик на пол-экрана соответствующего цвета.

Плохо вам в винде без notify :)

Date: 2012-12-11 08:00 pm (UTC)
From: [identity profile] eternal-leave.livejournal.com
Да хрен бы с ним, с notify — у них хотя бы || работает-то?

Date: 2012-12-11 08:05 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Внезапно: MSBuild и СС.NET используются именно потому что они выполняют функцию обработки ошибок и заменяют вот эти ваши красноглазые операторы

Date: 2012-12-11 08:46 pm (UTC)
From: [identity profile] eternal-leave.livejournal.com
Так у них есть код возврата или нет? Если есть — то в чем проблема-то была?

Date: 2012-12-11 08:01 pm (UTC)
From: [identity profile] metaclass.livejournal.com
И шо, оно может еще уведомление с работы домой шлет?:)

Date: 2012-12-11 08:14 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Ну мне это не надо --- цикл полной пересборки занимает минут 10-15, и это нужно очень редко, обычно хватает пары минут. Это не CI, просто рабочая сборка для отладки. Но таки добавить туда вызов mail -s "Success!" email@example.com ничего не мешает.

Date: 2012-12-11 08:22 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
Помнится ещё в 1998 году в конторе net send активно юзалось. Тоже мне бином.

Насчёт "экрана" -- какое детство, у вас видимо десктоп собирает и потом простаивает.
Глядишь, лет через 10 узнаете про тестирование билда.

Date: 2012-12-11 08:57 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Вы моего резюме не читали, и на работу не принимали — не делайте поспешных выводов, пожалуйста.

Это всего лишь рабочая сборка для отладки, занимающая время не столь большое, чтобы выселять её на отдельный сервер, и не столь малое, чтобы на неё медитировать.

Date: 2012-12-12 05:48 am (UTC)
From: [identity profile] denisioru.livejournal.com
FinalBuilder используем, тоже ок.

Date: 2012-12-12 11:08 am (UTC)
From: [identity profile] alexandr0.livejournal.com
CrusieControl с суффиксом NET не видел. Но Jenkins удобнее, чем CrusieControl без суффиксов.

Date: 2012-12-12 12:13 pm (UTC)
From: [identity profile] nicka-startcev.livejournal.com
>MSBuild не умеет события "выполнить при ошибке".

а хотя бы код возврата умеет?
Тогда из скрипта пускать.

если и это не умеет - то настроить внешний вочдог и пинать его событиями "пока что всё собирается хорошо" и "всё собралось".

Date: 2012-12-12 12:16 pm (UTC)
From: [identity profile] nicka-startcev.livejournal.com
в общем, делать из модногламурной няшки деталь как для линупса.

Date: 2012-12-12 12:28 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, MSBuild и сам по себе ближе к нормальным инструментам, чем к гламурным няшкам.

Date: 2012-12-12 12:16 pm (UTC)
From: [identity profile] metaclass.livejournal.com
На самом деле он все умеет, это в документации непонятно, к какой версии что относится.
Из скрипта хреново - тут ключевая идея избавится от скриптов вообще - оставить только софт с явной проверкой кодов возврата и руганью на них по умолчанию (MSBuild и этот вот CI сервер).

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 28th, 2025 11:04 pm
Powered by Dreamwidth Studios