/*Все что под sudo будет установленно для всех пользователей в директорию /usr/local/lib/python3.7/dist-packages*/
#На хосте который производит мониторинг Worker-ов
sudo pip install twisted #Библиотека twisted
sudo pip install buildbot #BuildMaster
#Дополнительный функционал
pip install pysqlite3 #Устанавливаем базу sqllite в учебных целях
pip install jinja2 #framework наподобие django, для web и для почтовых рассыллок
pip install autobahn #Web cокеты для связи BuildMaster->Worker
pip install sqlalchemy sqlalchemy-migrate #Для отображения схемы базы данных
#Для Web отображения BuildBot-a
pip install buildbot-www buildbot-grid-view buildbot-console-view buildbot-waterfall-view
pip install python-dateutil #Отображение дат в web
#На стороне хоста который непосредственно осуществляет сборку и тестирование
pip install buildbot-worker #Worker
#Дополнительный функционал
sudo pip install virtualenv #Виртуальная среда
Kukhazikika BuildMaster ikuchitika pambali pa makina omwe tidapereka lamulo kupanga-mbuye. Kwa ife, ichi ndi chikwatu /home/habr/master. Fayilo yosintha master.cfg kulibe, koma lamulo lokha lapanga kale fayilo chitsanzo.cmg. Muyenera kuyipatsanso dzina master.cfg.sample в master.cfg
Ndi kiyi kusintha_gwero dikishonale c timapeza mwayi pamndandanda womwe tikufuna kuyika chinthu chomwe chimasankha malo okhala ndi magwero a polojekiti. Chitsanzo chimagwiritsa ntchito chosungira cha Git chomwe chimasankhidwa pakapita nthawi.
Mtsutso woyamba ndi njira yopita kunkhokwe yanu.
workdir imayimira njira yopita ku chikwatu komwe kumbali Wogwira ntchito- wachibale wa njira /home/habr/worker/yourProject/build git idzasunga mtundu wakomweko wankhokwe.
nthambi lili ndi nthambi inayake munkhokwe yomwe iyenera kutsatiridwa.
pollInterval ili ndi chiwerengero cha masekondi pambuyo pake BuildMaster adzavotera nkhokwe kuti zisinthe.
Pali njira zingapo zowonera kusintha kwa nkhokwe ya polojekiti.
Njira yosavuta ndiyo Kusankhidwa, zomwe zikutanthauza kuti BuildMaster nthawi ndi nthawi amasankha seva yokhala ndi posungira. Ngati chitani adawonetsa kusintha kwa malo osungira, ndiye BuildMaster adzapanga chinthu chamkati ndikuchedwa Change ndi kutumiza kwa wosamalira zochitika Scheduler, yomwe idzayambitse njira zomanga ndi kuyesa polojekitiyi Wogwira ntchito-e. Zina mwa njirazi zidzawonetsedwa pomwe posungira. Ndendende Wogwira ntchitoIzi zipanga kopi yakomweko yankhokwe. Tsatanetsatane wa ndondomekoyi idzafotokozedwa pansipa m'magawo awiri otsatirawa. (5.4 и 5.5).
Njira yowoneka bwino kwambiri yotsatirira zosintha kunkhokwe ndikutumiza mauthenga mwachindunji kuchokera pa seva yomwe ikuwatsogolera BuildMaster- za kusintha ma code source source. Pankhaniyi, atangopanga mapulogalamu chitani, seva yomwe ili ndi malo osungira polojekiti idzatumiza uthenga BuildMaster-y. Ndipo nayenso adzachitsekereza polenga chinthu PBChangeSource. Kenako, chinthu ichi chidzasamutsidwa ku Scheduler, yomwe imayendetsa njira zopangira polojekiti ndikuyesa. Mbali yofunika kwambiri ya njirayi ikugwira ntchito mbedza-zolemba za seva mu repository. Mu script mbedza-a, udindo wokonza zochita pamene chitani-e, muyenera kuyimbira foni kutumiza kusintha ndipo tchulani adilesi ya netiweki BuildMaster-A. Muyeneranso kutchula doko la netiweki lomwe lidzamvera PBChangeSource. PBChangeSource, mwa njira, ndi gawo BuildMaster-A. Njirayi idzafuna chilolezo boma-a pa seva pomwe malo osungira polojekiti ali. Choyamba muyenera kupanga zosunga zobwezeretsera.
okonza mapulani - ichi ndi chinthu chomwe chimakhala ngati choyambitsa chomwe chimayambira mndandanda wonse wa msonkhano ndi kuyesa polojekitiyi.
Zosintha zomwe zidalembedwa kusintha_gwero, kusinthidwa pogwira ntchito BuildBot-a kutsutsa Change ndipo tsopano aliyense Sheduler kutengera iwo, imamanga zopempha kuti ayambe ntchito yomanga. Komabe, imatsimikiziranso kuti zopemphazi zitumizidwa liti pamzere. Chinthu womanga amasunga mndandanda wa zopempha ndikuyang'anira mkhalidwe wa msonkhano womwe ulipo padera Wogwira ntchito-ndi. womanga alipo pa BuildMaster-e ndi ku Wogwira ntchito-e. Amatumiza ndi BuildMaster-a pa Wogwira ntchito-ndipo kale zachindunji kumanga - njira zingapo zomwe ziyenera kutsatiridwa.
Tikuwona kuti mu chitsanzo chamakono chotero okonza mapulani 2 zidutswa zimapangidwa. Komanso, aliyense ali ndi mtundu wake.
SingleBranchScheduler - imodzi mwamakalasi odziwika kwambiri pandandanda. Imayang'ana nthambi imodzi ndipo imayambitsidwa ndi kusintha komwe kunalembedwa. Akawona kusintha, akhoza kuchedwa kutumiza pempho la kumanga (kuchepetsa nthawi yomwe yatchulidwa mu parameter yapadera treeStableTimer) AT dzina imakhazikitsa dzina la ndandanda yomwe iwonetsedwa BuildBot- mawonekedwe a intaneti. MU ChangeFilter fyuluta imayikidwa, ikadutsa zomwe kusintha kwa nthambi kumapangitsa kuti dongosolo litumize pempho la zomangamanga. MU builderNames dzina lasonyezedwa womanga-a, zomwe tiyika patsogolo pang'ono. Dzina lathu lidzakhala lofanana ndi dzina la polojekiti: yourProject.
ForceScheduler chinthu chophweka kwambiri. Ndondomeko yamtunduwu imayambitsidwa ndi kudina kwa mbewa BuildBot- mawonekedwe a intaneti. Ma parameters ali ndi tanthauzo lofanana ndi in SingleBranchScheduler.
PS nambala 3. Mwina zidzathandiza Nthawi ndi nthawi ndi ndondomeko yomwe imayenda pa nthawi yokhazikika. Kuitana kumawoneka chonchi
dzina limatchula dzina womanga-a. Apa tidachitcha dzina yourProject... Izi zikutanthauza kuti pa Wogwira ntchito- njira iyi idzapangidwa /home/habr/worker/yourProject/build. Sheduler kuyang'ana womanga mwa dzina ili basi.
BuildMaster и Wogwira ntchito thamanga pa wolandira yemweyo project.host .BuildMaster imasunga mafayilo ake mufoda /home/habr/master. Wogwira ntchito imasungidwa munjira yotsatirayi /home/habr/worker. Njira yolumikizirana BuildMaster-a ndi Wogwira ntchito-a imachitika kudzera pa doko 4000 molingana ndi protocol BuildBot-a, ndi 'pb' protocol.
Cholinga cha polojekitiyi chinalembedwa mu Python. Ntchito ndikutsata zosintha zake, kupanga fayilo yomwe ingathe kuchitika, kupanga zolemba, ndikuyesa kuyesa. Zikalephera, opanga onse ayenera kutumiza uthenga kudzera pa imelo wonena kuti palibe chomwe sichikuyenda bwino.
Chiwonetsero cha intaneti BuildBot tidzalumikiza ku port 80 kwa project.host. Sikoyenera kukhazikitsa Apatch. Monga gawo la laibulale Zopotoka pali kale seva yapaintaneti, BuildBot amachigwiritsa ntchito.
Kusunga zambiri zamkati za BuildBot tidzagwiritsa ntchito sqlite.
6.3 Kalata kwa inu: Atolankhani ndi ololedwa kulengeza
atolankhani ndi ntchito yotumiza zidziwitso ndi imelo.
template_html=u'''
<h4>Статус построенного релиза: {{ summary }}</h4>
<p>Используемый сервис для постраения: {{ workername }}</p>
<p>Проект: {{ projects }}</p>
<p>Для того что бы посмотреть интерфейс управления пройдите по ссылке: {{ buildbot_url }}</p>
<p>Для того что бы посмотреть результат сборки пройдите по ссылке: {{ build_url }}</p>
<p>Используя WinSCP можно подключиться к серверу c ip:xxx.xx.xxx.xx. Войдя под habr/password, забрать собранный executable файл с директории ~/worker/yourProject/build/dist.</p>
<p><b>Построение было произведено через Buildbot</b></p>
'''
sendMessageToAll = reporters.MailNotifier(fromaddr="[email protected]",
sendToInterestedUsers=True,
lookup="your.domain",
relayhost="smtp.your.domain",
smtpPort=1025,
mode="warnings",
extraRecipients=['[email protected]'],
messageFormatter=reporters.MessageFormatter(
template=template_html,
template_type='html',
wantProperties=True,
wantSteps=True)
)
c['services'] = [sendMessageToAll]
extraRecipients lili ndi mndandanda wa anthu amene makalata ayenera kutumizidwa kuwonjezera kwa mwini wake ndi munthu amene anachita chitani.
uthengaFormatter ndi chinthu chomwe chimafotokoza mtundu wa uthenga, template yake, ndi gulu la zosinthika zomwe zilipo jinja2. Zosankha monga wantProperties=Zowona и wantSteps=Zowona fotokozani gulu ili la zosinthika zomwe zilipo.
ndi['services']=[sendMessageToAll] imapereka mndandanda wa mautumiki, omwe athu adzakhala mtolankhani.