Koa satria rafitra mizarazara ny buildbot, dia mety ny mamorona mpampiantrano fananganana manokana ho an'ny rafitra sy rafitra fiasana tsirairay. Amin'ny tranga misy antsika, ireto dia fitoeran'entana LXC (raha Linux) sy qemu (raha Windows):
vm-srv-build2 - debian 10, amin'ny fananganana fonosana DEB
vm-srv-build3 - windows 10, ho an'ny fivoriambe, fantatrao hoe inona
Hanangona izahay Rac GUI - interface an-tsary ho an'ny 1C rac amin'ny fitantanana vondron'ny mpizara. Ho an'ny Linux, fitaovana mahazatra ho an'ny OS tsirairay no hampiasaina; mba hananganana rakitra exe ho an'ny Windows amin'ny script tcl, ampiasao freewrap.
fametrahana
GNU / Linux
Misy antontan-taratasy ampy amin'ny Internet ho an'ny fametrahana 1,2. Eny, ary tsy miteraka olana manokana izany:
Ho an'ny tompony:
Mazava ho azy fa mety kokoa ny manangona fonosana ho an'ny OS tsirairay, saingy mihoatra ny faritry ny lahatsoratra izany. Hafointsika koa ny famaritana ny fametrahana kaontenera ho an'ny asa, homarihiko fotsiny fa mampiasa ProxMox VE aho. Ary mila mametraka fonosana ho an'ny axis tsirairay ilaina amin'ny fivoriambe ianao (centos: rpmdevtools, sns.; debian: build-essential, dh-make, pbuilder, sns.)
Tetik'asa fananganana sy serivisy buildbot dia havoaka ho mpampiasa tsy manana tombontsoa, ββnoho izany dia mila mamorona iray amin'ireo mpampiantrano rehetra mandray anjara amin'ny dingana ianao:
adduser buildbot
Manaraka, dia hamboarina ny fandefasana serivisy mandeha ho azy, tsirairay avy, amin'ny mpampiantrano tsirairay (container):
Aorian'izany dia azonao atao ny mamorona fotodrafitrasa lahatahiry ho an'ny "mpiasa" (amin'ny mpampiantrano rehetra), mba hanaovana izany, misoratra anarana eo ambanin'ny mpampiasa buildbot ary araho ireto baiko manaraka ireto:
Ao amin'ny mpampiantrano voalohany vm-srv-build1:
su - buildbot
mkdir /home/buildbot/worker
cd ~
buildbot-worker create-worker --umask=0o22 --keepalive=60 worker vm-srv-build1:4000 CentOS 123456
Ao amin'ny mpampiantrano faharoa vm-srv-build2:
su - buildbot
mkdir /home/buildbot/worker
cd ~
buildbot-worker create-worker --umask=0o22 --keepalive=60 worker vm-srv-build1:4000 Debian-10 123456
Amin'ny mpampiantrano mpiasa dia azo atomboka ny serivisy buildbot-worker
systemctl start buildbot-worker
MS Windows
Amin'ny maha "mpiasa" amin'ny fivoriambe eo ambanin'ny Windows, dia milina virtoaly misy ny famoahana farany an'ny Win10 no hampiasaina.
Mba hiasa dia mila:
Aorian'ny fametrahana ireo rehetra voalaza etsy ambony ireo dia azonao atao ny mametraka ny buildbot:
pip install buildbot-worker
Andao hamorona lahatahiry miasa
md c:worker
Ary andao hanomboka
buildbot-worker start c:worker
Raha mandeha ny zava-drehetra (jereo ny log c:workertwistd.log), dia azonao atao ny manoratra ny "mpiasantsika" ho serivisy amin'ny alΓ lan'ny fampidirana singa iray miaraka amin'ny lahatahiry miasa ao amin'ny rejisitra (ny baiko dia tanterahina amin'ny Powershell mihazakazaka ho mpitantana):
Mba hanamafisana ny fanangonana fonosana amin'ny dikan-teny samihafa, mba tsy hidirana ao amin'ny kaody an'ny rakitra master.cfg, ao amin'ny script lehibe amin'ny programa rac_gui.tcl, dia nampidirina ao amin'ny lohapejy ny tsipika misy ny dikan-teny ankehitriny sy ny famoahana. :
Ary mifototra amin'ireo andalana ireo, ny buildbot dia hanome isa ny fonosana. Mba hanesorana angona dia ampiasao ny antso grep console. Ao amin'ny buildbot dia tsy afaka mamaritra ny fari-pahaizan'ny "mpiasa" ianao (farafaharatsiny, tsy hitako hoe ahoana). Izany no ampiasaina amin'ny fananana. Ireo. Ao amin'ny fizotry ny fivoriambe dia manampy dingana izahay hamaritana ny dikan-teny sy ny famoahana ary, araka izany, ny fametrahana ny dikan-teny sy ny fanafahana. Ny fananana dia azo apetraka amin'ny fomba isan-karazany, amin'ity tranga ity amin'ny fiantsoana ny baiko console:
Marihina eto fa satria ny mpampiantrano ihany koa dia ampiasaina amin'ny famoriana ny fonosana amin'ny tanana, ny fivoriambe dia hatao amin'ny lalana mahazatra.
Mba hametrahana ny laharan'ny famoahana sy ny dikan-teny marina, ampiasao ny antso sed mahazatra, i.e. ny baiko dia manolo ny soatoavina ao anatin'ny rakitra spec miaraka amin'ireo ilaina
Mandika ny fonosana efa vita sy ny arisiva miaraka amin'ny loharano mankany amin'ny tompony izahay. Saingy azonao atao ny mandika avy hatrany ny rakitra avy amin'ny rakitra asanao mankany amin'ny tahiry na tranokalanao.
Ho an'ny fonosana RPM, ny sasany amin'ireto fomba manaraka ireto dia ataon'ny rpm mandritra ny fivoriambe ary voalaza ao anatin'ny spec; ho an'i Debian, tsy maintsy manao izany ianao eto:
Tehirizo ny rakitra ary azonao atao ny manandrana manomboka ny serivisy wizard:
systemctl restart buildbot-master
Ao amin'ny log dia hojerentsika fa milamina ny zava-drehetra miaraka amin'ny config ary mandeha ara-dalà na ny zava-drehetra. Tokony hifandray izao ny mpiasantsika rehetra, izay ho taterina amim-pifaliana ao amin'ny log »»'/home/buildbot/master/twistd.log»»':
2019-07-24 16:50:35+0300 [-] Loading buildbot.tac...
2019-07-24 16:50:35+0300 [-] Loaded.
2019-07-24 16:50:35+0300 [-] twistd 19.2.1 (/usr/bin/python3.6 3.6.8) starting up.
2019-07-24 16:50:35+0300 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2019-07-24 16:50:35+0300 [-] Starting BuildMaster -- buildbot.version: 2.3.1
2019-07-24 16:50:35+0300 [-] Loading configuration from '/home/buildbot/master/master.cfg'
2019-07-24 16:50:36+0300 [-] /usr/local/lib/python3.6/site-packages/buildbot/config.py:90: buildbot.config.ConfigWarning: [0.9.0 and later] `buildbotNetUsageData` is not configured and defaults to basic.
This parameter helps the buildbot development team to understand the installation base.
No personal information is collected.
Only installation software version info and plugin usage is sent.
You can `opt-out` by setting this variable to None.
Or `opt-in` for more information by setting it to "full".
2019-07-24 16:50:36+0300 [-] Setting up database with URL 'sqlite:/state.sqlite'
2019-07-24 16:50:36+0300 [-] setting database journal mode to 'wal'
2019-07-24 16:50:36+0300 [-] adding 1 new services, removing 0
2019-07-24 16:50:36+0300 [-] adding 1 new change_sources, removing 0
2019-07-24 16:50:36+0300 [-] gitpoller: using workdir '/home/buildbot/master/gitpoller-work'
2019-07-24 16:50:36+0300 [-] adding 3 new builders, removing 0
2019-07-24 16:50:36+0300 [-] adding 1 new schedulers, removing 0
2019-07-24 16:50:36+0300 [-] initializing www plugin 'waterfall_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'console_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'grid_view'
2019-07-24 16:50:36+0300 [-] NOTE: www plugin 'sitenav' is installed but not configured
2019-07-24 16:50:36+0300 [-] initializing www plugin 'waterfall_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'console_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'grid_view'
2019-07-24 16:50:36+0300 [-] NOTE: www plugin 'sitenav' is installed but not configured
2019-07-24 16:50:36+0300 [-] BuildbotSite starting on 80
2019-07-24 16:50:36+0300 [-] Starting factory <buildbot.www.service.BuildbotSite object at 0x7fe31c2657b8>
2019-07-24 16:50:36+0300 [-] adding 3 new workers, removing 0
2019-07-24 16:50:36+0300 [-] PBServerFactory starting on 4000
2019-07-24 16:50:36+0300 [-] Starting factory <twisted.spread.pb.PBServerFactory object at 0x7fe31c147470>
2019-07-24 16:50:37+0300 [-] BuildMaster is running
2019-07-24 16:50:37+0300 [-] buildbotNetUsageData: sending {'installid': 'b6193b126b96689351d2fe95787c5a03fc0879f9', 'versions': {'Python': '3.6.8', 'Buildbot': '2.3.1', 'Twisted': '19.2.1'}, 'platform': {'platform': 'Linux-4.15.18-10- pve-x86_64-with-centos-7.6.1810-Core', 'system': 'Linux', 'machine': 'x86_64', 'processor': 'x86_64', 'python_implementation': 'CPython', 'version': '#1 SMP PVE 4.15.18-32', 'distro': 'centos:7'}, 'plugins': {'buildbot/worker/base/Worker': 3, 'buildbot/config/BuilderConfig': 3, 'buildbot/schedulers/basic/SingleBranchScheduler': 1, 'buildbot/reporters/mail/MailNotifier': 1, 'buildbot/changes/gitpoller/GitPoller': 1, 'buildbot/steps/worker/MakeDirectory': 1, 'buildbot/steps/source/git/Git': 3, 'buildbot/steps/shell/ShellCommand': 9, 'buildbot/steps/package/rpm/rpmbuild/RpmBuild': 1}, 'db': 'sqlite', 'mq': 'simple', 'www_plugins': ['waterfall_view', 'console_view', 'grid_view']}
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] worker 'CentOS' attaching from IPv4Address(type='TCP', host='127.0.0.1', port=37332)
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] Got workerinfo from 'CentOS'
2019-07-24 16:50:37+0300 [-] bot attached
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] Worker CentOS attached to Rac-GUI-RPM-builder
2019-07-24 16:50:37+0300 [-] buildbotNetUsageData: buildbot.net said: ok
2019-07-24 16:50:39+0300 [Broker,1,192.168.55.15] worker 'Windows-10' attaching from IPv4Address(type='TCP', host='192.168.5.145', port=49831)
2019-07-24 16:50:39+0300 [Broker,1,192.168.55.15] Got workerinfo from 'Windows-10'
2019-07-24 16:50:40+0300 [-] bot attached
2019-07-24 16:50:40+0300 [Broker,1,192.168.55.15] Worker Windows-10 attached to Rac-GUI-WIN-builder
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] worker 'Debian-10' attaching from IPv4Address(type='TCP', host='192.168.5.9', port=44430)
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] Got workerinfo from 'Debian-10'
2019-07-24 16:50:41+0300 [-] bot attached
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] Worker Debian-10 attached to Rac-GUI-DEB-builder
Izany dia mamita ny dingana fananganana. Azonao atao ny mijery ny sata misy amin'izao fotoana izao amin'ny alΓ lan'ny interface interface. Any amin'ny toerana ahitanao ihany koa ny fananganana lesoka, asio dingana mangatsiaka raha misy zavatra tsy nety, sns.
Avy hatrany aorian'ny fandefasana dia azo jerena amin'ny alΓ lan'ny menio "Builds" -> "Workers" ny mpiasa mafy.
Rehefa vita ny dingana fananganana voalohany (izany hoe fiovana amin'ny tahiry Git), dia hiseho eo amin'ny pejy voalohany ny satan'ny dingana.
Raha manindry ny tsipika tianao amin'ny totozy ianao, dia hisokatra ny pejy misy ny toe-javatra misy an'io dingana io, izay ahitanao ny zava-mitranga, inona ny fahadisoana, sns.