Útmutatók

Mi a CI/CD? Folyamatos integráció és kézbesítés egyszerűen

A CI/CD olyan szoftverkiadási módszer, amelyben minden kódmódosítást automatikusan lefordítanak, tesztelnek, és – ha átmegy a teszten – előkészítenek a kiadásra vagy kiadják. A CI (folyamatos integráció) azt jelenti, hogy a változtatásokat gyakran egyesítik, és minden alkalommal automatikus tesztek ellenőrzik őket. A CD (folyamatos kézbesítés vagy telepítés) azt jelenti, hogy a sikeres változtatásokat csomagolják és a felhasználók felé juttatják, kevés vagy semmi kézi munkával.

A lényeg egyszerű: a hibákat percekkel az elkövetésük után elkapni, nem hetekkel később, amikor egy vásárló találja meg őket.

Miért fontos a CI/CD, ha AI-val építesz

Az AI-építők gyorsan módosítanak a kódon. Egy egyetlen prompt akár tíz fájlt is érinthet. Ez a sebesség remek, amíg a fizetési oldal egy módosítása csendben el nem rontja a bejelentkezési oldalt, és senki nem veszi észre, amíg egy felhasználó meg nem ír neked.

A CI/CD pontosan erre a hálóra való. Ahelyett, hogy azt feltételeznéd, hogy minden változtatás rendben van, egy folyamat minden alkalommal ugyanazokat az ellenőrzéseket futtatja:

  • Hibák nélkül lefordul még az app?
  • Még mindig átmennek az automatikus tesztek?
  • Betartja a kód a projekt szabályait (típusok, formázás, biztonsági ellenőrzések)?

Ha bármelyik ellenőrzés elbukik, a változtatást még azelőtt megállítják, hogy a felhasználókhoz érne. Minél gyorsabban változik a kódod, annál értékesebb egy olyan ellenőrzés, amely sosem fárad el és nem hagy ki lépést.

Mindennapi hasonlat

Gondolj egy pékségre, amely minden reggel kenyeret ad el a boltoknak.

  • CI/CD nélkül minden pék egy hétig a saját receptjén finomít, majd pénteken este mindenki összerakja a változtatásait, és reméli, hogy a kenyér megkel. Ha nem kel meg, senki nem tudja, kinek a változtatása okozta.
  • CI-vel minden apró receptmódosítást azonnal sütnek egy tesztkenyérben, és ellenőrzik: íz, tömeg, forma. A rossz változtatást még aznap elkapják, és pontosan tudják, melyik volt az.
  • CD-vel az ellenőrzésen átjutott kenyerek egyenesen a szállítóautóra kerülnek, mindig ugyanúgy csomagolva és címkézve, ahelyett, hogy valaki reggel 5-kor kézzel pakolná a dobozokat.

Az ellenőrzés nem teszi jobb pékekké őket. Olcsóvá teszi a hibáikat.

Hogyan működik a CI/CD-folyamat

A folyamat (pipeline) olyan lépések sorozata, amelyet egy CI/CD-szolgáltatás automatikusan futtat, amikor valami történik – általában amikor valaki kódot tölt fel egy tárolóba, például a GitHubra. Egy tipikus folyamat így néz ki:

LépésMi történikAmit elkap
1. IndításKódot töltenek fel, vagy lehívási kérést (pull request) nyitnak–
2. TelepítésEgy friss gép letölti a kódot és a függőségeitHiányzó vagy hibás csomagok
3. BuildAz appot lefordítják vagy csomagoljákSzintaktikai és típushibák, törött importok
4. TesztelésLefutnak az automatikus tesztekMár nem működő funkciók
5. EllenőrzésekLinting, formázás, biztonsági átvilágításStílushibák, ismert sebezhető csomagok, kiszivárgott kulcsok
6. Telepítés staging-beAz app a termelési környezet tesztmásolatára kerülCsak valódi környezetben megjelenő problémák
7. Telepítés élesbeAz app élesben van – automatikusan vagy jóváhagyás után–

Minden lépés tiszta gépen fut, nem valakinek a laptopján, így a „nálam működik” már nem kifogás. Ha egy lépés elbukik, a folyamat megáll, és szól annak, aki a változtatást készítette.

A lépéseket egy konfigurációs fájl írja le, amely a kóddal együtt él. A GitHub Actionsben például ez egy YAML-fájl a tároló .github/workflows mappájában.

Folyamatos kézbesítés vs folyamatos telepítés

A „CD” kétértelmű, és az emberek mindkét értelemben használják:

Folyamatos kézbesítésFolyamatos telepítés
A tesztek automatikusan futnakIgenIgen
A kiadás automatikusan csomagolódikIgenIgen
Automatikusan élesbe kerülNem – egy ember kattint a „kiadás” gombraIgen – minden sikeres változtatás kiadódik
Jó ehhezA legtöbb kis csapat, fizető felhasználókkal rendelkező appokErős tesztlefedettséggel és monitorozással rendelkező csapatok

A folyamatos telepítés csak akkor működik jól, ha a tesztek jók. Ha a teszteid nem fedik le a fizetést, a folyamatos telepítés vidáman kiad egy törött fizetési oldalt.

Példa: foglalóapp folyamattal

Tegyük fel, hogy van egy szalonfoglaló appod, a kódja pedig egy GitHub-tárolóban van. Az AI-építőnek ezt kéred: „Adj 10% kedvezményt az első alkalommal érkező vásárlóknak.”

  1. A változtatás egy új ágra kerül feltöltésre, és lehívási kérés (pull request) nyílik.
  2. Elindul a folyamat. Telepíti a csomagokat és lefordítja az appot – ez átmegy.
  3. Lefuttatja a teszteket. Egy teszt, „a visszatérő vásárló teljes árat fizet”, elbukik: a kedvezmény mindenkire érvényes.
  4. A lehívási kérésen piros kereszt látszik. A változtatás nem egyesíthető.
  5. Megkéred az AI-t, hogy javítsa. Feltölt egy javítást; a folyamat újra fut, és minden átmegy.
  6. A változtatást egyesítik. A folyamat staging környezetbe telepíti, ahol kipróbálsz egy tesztfoglalást.
  7. Jóváhagyod, és az élesbe települ.

A folyamat nélkül a 3. lépés a vásárlóid pénztárcájában történt volna meg.

Kulcsfogalmak

FogalomJelentés
Folyamat (pipeline)Az automatikus lépéssorozat, amely minden változtatásra lefut.
BuildA forráskód átalakítása futtatható formára.
Automatikus tesztKód, amely ellenőrzi, hogy más kód a helyes dolgot teszi-e.
Lehívási kérés (PR)Egy javasolt változtatás, amelyet mások (és a folyamat) átnéznek, mielőtt egyesítik. Lásd mi a GitHub.
Ág (branch)A változtatások külön vonala, így a félkész munka nem érinti a fő kódot.
StagingAz appod privát másolata, amely a termelési környezetet tükrözi, hogy a változtatásokat a felhasználók előtt ellenőrizzék.
Termelési környezet (production)Az élő app, amelyet a felhasználóid használnak.
Visszagörgetés (rollback)Visszatérés az előző működő verzióhoz, ha egy kiadás rosszul sül el.
Zöld / piros buildA folyamat futása, amely átment / elbukott.

Gyakori tévhitek

  • „A CI/CD azt jelenti, hogy az appom tesztelve van.” A folyamat csak azokat a teszteket futtatja, amelyek vannak. Ha nincs teszt, a CI csak azt bizonyítja, hogy az app lefordul – többet semmit. Kérd meg az AI-t, hogy írjon teszteket a legfontosabb folyamatokhoz.
  • „A CI/CD csak nagy cégeknek való.” Az olyan hosztolt eszközök, mint a GitHub Actions, rövid konfigurációs fájllal beállíthatók, és a kis csapatok folyamatosan használják őket. A munkát a tesztek jelentik, nem az eszköz.
  • „Az automatikus telepítés azt jelenti, hogy senki nem ellenőriz semmit.” A jó folyamatok ellenőrzéseket adnak hozzá, nem vesznek el. Sok csapat megtartja az emberi jóváhagyást az élesítés előtt.
  • „Ha a folyamat zöld, az app működik.” Azt jelenti, hogy az automatikus ellenőrzések átmentek. A változtatást akkor is magadnak kell kipróbálnod, lehetőleg előnézetben vagy staging-en.
  • „A CI/CD helyettesíti a mentéseket.” Nem. Egy rossz adatbázis-migráció, amely átmegy a teszteken, még mindig károsíthatja a valódi adatokat. Tarts mentéseket és visszaállítási lehetőséget.

Mit kérj az AI-építőtől

  • „Írj automatikus teszteket a regisztrációra, bejelentkezésre és a pénztárra, és mutasd meg, hogyan kell futtatni őket.”
  • „Állíts be egy GitHub Actions munkafolyamatot, amely minden lehívási kérésnél telepíti a függőségeket, lefordítja az appot és lefuttatja a teszteket.”
  • „Adj típusellenőrzést és linter a folyamathoz, és hibánál buktassa meg.”
  • „Magyarázd el közérthetően, mit csinál a folyamat minden lépése.”
  • „Mi történik, ha a telepítés félúton elbukik? Hogyan görgetem vissza?”
  • „Ellenőrizd, hogy nincsenek-e titkok beégetve a tárolóba, vagy kiírva a folyamat naplóiba.”

Ha az appod API-kulcsokat használ, a folyamatnak is szüksége van rájuk – titkosított titokként tárolva a CI-eszközben, soha nem a konfigurációs fájlban. Lásd környezeti változók és titkok.

CI/CD és a Mythex

A Mythex nem futtat helyetted CI-folyamatot, de több ugyanilyen igényt a maga módján lefed:

  • Ellenőrzőpontok. Minden sikeres ügynöki kör után a Mythex git-ellenőrzőpontot ment, és a Visszaállítás erre a pontra visszaforgatja a projektet, ha egy változtatás rosszul sült el. Lásd Chat.
  • Alkalmazástesztelés. Írd be a /test parancsot, és az ügynök úgy kattintgat át az élő előnézeten, mint egy felhasználó, és jelenti a hibás folyamatokat – hasznos minden közzététel előtt. Lásd Alkalmazástesztelés.
  • A közzététel tudatos lépés. A változtatások először a privát előnézetben jelennek meg; a nyilvános appod csak újbóli közzétételkor frissül – ez inkább a folyamatos kézbesítéshez, mint a folyamatos telepítéshez áll közel.
  • GitHub-szinkronizálás (Pro). Ha a projektet szinkronizálod egy GitHub-tárolóval, saját GitHub Actions munkafolyamatokat adhatsz hozzá, amelyek minden feltöltésnél tesztelnek. Lásd GitHub és exportálás.

Az élesítés előtt kézzel tesztelendő dolgok listájához lásd hogyan teszteld az appodat indítás előtt, a verziókezeléssel való munkához pedig hogyan használj Gitet AI-val épített appnál.

Kérdések

Mit jelent a CI/CD?

A CI a folyamatos integrációt jelenti: minden kódmódosítást gyakran egyesítenek, és automatikusan lefordítanak és tesztelnek. A CD a folyamatos kézbesítést vagy folyamatos telepítést jelenti: a teszteken átjutó változtatásokat automatikusan előkészítik a kiadásra (kézbesítés), vagy emberi lépés nélkül kiadják a felhasználóknak (telepítés).

Mi a különbség a folyamatos kézbesítés és a folyamatos telepítés között?

Folyamatos kézbesítésnél minden, a folyamaton átjutó változtatás kiadásra kész, de az, hogy mikor kerüljön élesbe, még egy embertől függ. Folyamatos telepítésnél minden sikeres változtatás automatikusan élesbe kerül, emberi jóváhagyás nélkül.

Szükségem van CI/CD-re egy kis, AI-val épített appnál?

Az első napon nem. Egy kis app, néhány felhasználóval, megússza úgy, hogy előnézetben tesztel és kézzel publikál. A CI/CD akkor kezd megtérülni, ha többen módosítják a kódot, ha valódi vásárlók függnek az apptól, vagy ha folyton olyasmit törsz el, ami korábban működött.

Milyen eszközöket használnak a CI/CD-hez?

Gyakori megoldások a GitHub Actions, a GitLab CI/CD, a CircleCI és a Jenkins, valamint a tárhelyplatformok beépített telepítési folyamatai. Mindegyikük ugyanazt a feladatot végzi: minden kódváltozáskor automatikusan lefuttat egy lépéssorozatot.

Mythex · Pricing · Építs bármit AI-val · Weboldal- és alkalmazássablonok · A Mythex összehasonlítva · AI-alapú alkalmazásépítési szószedet · Ingyenes eszközök AI-alapú alkalmazásépítéshez · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)