Componentz

Szoftverfejlesztés élesben: Így építs saját, lokális CI/CD csővezetéket felesleges okostelefonokból és egyetlen olcsó mikrokontrollerből

2025-12-08
Szoftverfejlesztés élesben: Így építs saját, lokális CI/CD csővezetéket felesleges okostelefonokból és egyetlen olcsó mikrokontrollerből

Mindenki otthon őrizget legalább egy fiók mélyén heverő, elavult okostelefont, aminek már csak a kijelzője repedt, de a hardvere még bőven működőképes. Szoftverfejlesztés élesben: Így építs saját, lokális CI/CD csővezetéket felesleges okostelefonokból és egyetlen olcsó mikrokontrollerből című bejegyzésemben pontosan ezt a problémát oldjuk meg. Ahelyett, hogy drága felhőalapú szolgáltatásokért fizetnél, vagy a laptopodat terhelnéd a teszteléssel, alakítsuk át ezt a digitális hulladékot egy valódi, privát automatizációs laboratóriummá.

Miért van erre egyáltalán szükség?

A legtöbb fejlesztő azonnal a felhőbe nyúl, ha CI/CD folyamatokról van szó. Pedig egy lokális szerverpark nemcsak a pénztárcádat kíméli, hanem a saját gépedet is tisztán tartja a nehézkes konténerek futtatásától. Az okostelefonokban lévő ARM processzorok meglepően hatékonyak, különösen akkor, ha folyamatos integrációról vagy apróbb backend szolgáltatások teszteléséről van szó. A mikrokontroller pedig – például egy ESP32 vagy egy Raspberry Pi Pico – tökéletes „kapuőrként” funkcionál, amely figyeli a hálózatot, és ébreszti az alvó telefonokat, amikor kódot küldesz a tárolódba.

A hardveres alapozás

Az első dolog, amit tenned kell, az a telefonok alapos megtisztítása. Ha még fent van rajta a régi felhasználói fiókod, érdemes gyári beállításokra visszaállítani az eszközt. A cél az, hogy a telefonok csak a szerverfeladatokat lássák el, minden más felesleges alkalmazástól megszabadítva.

  • Szerezz be egy megbízható USB-elosztót, ami képes elegendő áramot adni a telefonoknak.
  • Készíts egy egyszerű állványt kartonból vagy 3D nyomtatott műanyagból, hogy a telefonok ne melegedjenek túl egymáson.
  • Szerezz be egy ESP32 mikrokontrollert, ami a tápellátást és az automatikus újraindítást vezérli.
  • Gondoskodj a megfelelő hűtésről egy apró ventilátorral, ha több telefont zsúfolsz össze egy dobozba.

Szoftveres beállítások és Linux a zsebben

Ahhoz, hogy egy telefont szerverként használj, a legbiztosabb módszer a Linux futtatása. A Termux alkalmazás a legjobb barátod lesz ebben a folyamatban. Egyetlen környezet, amiben gyakorlatilag egy teljes értékű Linux disztribúciót kapunk.

  • Telepítsd a Termuxot a telefonra, majd frissítsd a csomagkezelőt.
  • Állíts be egy SSH szervert, hogy a gépedről kényelmesen elérd a telefonokat.
  • Telepítsd a Docker vagy a Podman környezetet a konténerizált alkalmazások futtatásához.
  • Konfiguráld a távoli hozzáférést, hogy a CI/CD folyamatod a GitHubról vagy a saját GitLab szerveredről közvetlenül a telefonra küldje a kódot.

A mikrokontroller szerepe a rendszerben

Sokan elkövetik azt a hibát, hogy a telefonokat 0-24 órában töltőn hagyják. Ez nem tesz jót az akkumulátornak, és tűzveszélyes is lehet. Itt jön képbe az olcsó mikrokontroller. Programozd be úgy az ESP32-t, hogy egy relémodulon keresztül csak akkor adja rá a töltést a telefonokra, ha éppen futtatnod kell egy tesztet.

  • Használj MQTT protokollt a kommunikációhoz a szerverek és a mikrokontroller között.
  • A kódodban a CI folyamat elején küldj egy „ébresztő” jelet a mikrokontrollernek.
  • A tesztek végeztével egy „leállás” parancsot küldj, ami megszakítja a töltést és alvó állapotba küldi a telefonokat.
  • A mikrokontroller figyelheti a telefonok belső hőmérsékletét is, így elkerülheted a túlmelegedést.

A fejlesztői munkafolyamat

Ha mindent megfelelően összehangoltál, a folyamat a következőképpen néz ki. Amikor feltöltöd a kódodat a verziókezelőbe, egy web-hook azonnal jelzi a lokális hálózatodnak, hogy munka van. A mikrokontroller feléleszti a telefont, amely elindítja a Docker konténereket. A tesztek lefutnak, az eredmény pedig visszakerül a terminálodra.

  • Ne felejtsd el szinkronizálni a fejlesztői környezetet, hogy a telefonon futó tesztek ugyanazokat a függőségeket használják, mint a te géped.
  • Használj könnyűsúlyú adatbázisokat, mint a SQLite, ha teszteléshez szükséged van perzisztens adatokra.
  • Figyeld a naplózást, mert egy hibás kód esetén a telefon képernyője nélkül csak a logokból fogod látni, mi történt.
  • Az automatizálást kezdd apró egységtesztekkel, mielőtt komplexebb csővezetékeket építenél.

Megéri a fáradtságot?

A válasz rövid: abszolút. Bár a beállítása időigényes, a tanulási folyamat során olyan mélyreható ismereteket szerzel a hálózatokról, a konténerekről és az alacsony szintű hardveres vezérlésről, amit egy kész felhőalapú szolgáltatás soha nem adna meg. Ráadásul rendkívül kielégítő látvány, amikor a fiókod mélyén porosodó eszközök egyszer csak komoly fejlesztői munkaeszközökké válnak.

A hardverek újrahasznosítása nemcsak környezettudatos döntés, hanem a kreatív mérnöki szemlélet iskolapéldája is. Amikor legközelebb új telefont vásárolsz, ne add el vagy dobd ki a régit. Építs belőle egy saját, privát felhőt, ahol a te szabályaid szerint futnak a tesztek. A fejlesztés élménye így sokkal személyesebb, és a szoftverek, amiket készítesz, végre a saját, kézzelfogható infrastruktúrádon születnek meg.