Girdeji:
- CI / CD düşünjesine, turbageçiriji anatomiýa (trigger, iş, ädim, ylgawçy, artifakt) we GitHub Hereketleri bilen GitLab CI arasyndaky tapawutlara düşünmek we emeli intellektiň dogry kontekstde turbageçirijiler öndürmegi;
- Emeli intellektiň öndürýän turbageçirijisinde gizlin salgylanmalary, rugsatlary we diýilýän komponentleriň barlygyny barlamak we goramak
- Gizlin tekstleri aç-açan ýazmazlyk, iň az ygtyýarnama bermek we CI-den aýyrmak arkaly ýerleşdirmegi gözegçilikde saklamak ýörelgelerini ulanmak ukyby.
Döwrebap programma üpjünçiliginiň ýüregi awtomatlaşdyrylan turbageçiriji bolup, kody müşderä ygtybarly ýetýänçä kod dörediji kompýuterden çykýar. Bu turba CI / CD diýilýär. CI (Üznüksiz integrasiýa) - her kod üýtgemeginiň awtomatiki düzülmegi we synagdan geçirilmegi; Maksady, döredijiniň klawiaturadan çykmazyndan ozal bir näsazlygy tutmak. CD (Üznüksiz eltip bermek / ýerleşdirmek) - synagdan geçen kody awtomatiki taýýarlamak ýa-da çykarmak. CI / CD turbageçirijisi, bu ädimleri tertipli kesgitleýän konfigurasiýa faýly - adatça YAML-da ýazylýar (adam tarapyndan okalýan konfigurasiýa tekst formaty).
Bu YAML faýllaryny el bilen ýazmak ýadaw, sözli we ýalňyş; Indentasiýa bir giňişlikde süýşse, tutuş turbageçiriji bozulýar. AI girýän ýeri: dogry kontekst bilen, sekuntda iş meýilnamasyny öndürýär. Eachöne her döredilen ädimiň näme edýändigine düşünmek we barlamak siziň işiňiz - sebäbi bu koduňyzy görkezmek üçin geçirýän turba.
CI / CD turbageçirijisiniň anatomiýasy
Her turbageçiriji birnäçe esasy düşünjelerden durýar. AI çykyşyna gözegçilik edip bilmersiňiz:
- Trigger: Turbageçiriji näme başlaýar? Adatça bir şaha iteklemek, çekmek haýyşy (birleşdirmek haýyşy) ýa-da tertip.
- Iş: Birnäçe ädim ýerine ýetirýän logiki birlik; meselem "synag", "gurmak", "ýerleşdirmek".
- Stepdim: Bir işiň içinde ýekeje buýruk ýa-da hereket.
- Ylgawçy: Işleýän wirtual maşyn ýa-da gap.
- Artifact: Bir iş tarapyndan öndürilen we soňraky işlerde ulanylýan önüm (mysal üçin, düzülen faýl).
- Gizlin: Turbageçirijiniň ulanýan gizlin maglumatlary, ýöne ammarda açyk tekstde galmaly däldir.
GitHub Hereketleri bu kesgitlemäni .github / workflows / *. Yml faýllarynda saklaýar; Gurluş iş tertibi, iş → ädim iýerarhiýasy. GitLab CI, beýleki tarapdan .gitlab-ci.yml faýlynda sahna → iş gurluşyny ulanýar. AI iki sintaksis hem bilýär, ýöne haýsysyny isleýändigiňizi aç-açan aýtmalysyňyz.
Maslahat: AI turbageçirijiler soralanda, elmydama kesgitläň: platforma (GitHub Actions ýa-da GitLab CI), dil / çarçuwa (Node, .NET, Python…), trigger we ýerleşdiriljekdigini kesgitläň. Bu dört maglumat, çykyşyň peýdalylygyny iki esse köpeldýär.
Stepdimme-ädim: AI bilen turbageçirijini taslamak
- Maksady aýdyň. "Esasy basmak üçin synaglary işlediň, şekil dörediň, ýöne diňe bellik atylanda ýerleşdiriň" ýaly.
- Süňk öndüriň. AI-den esasy iş prosesini soraň.
- Thedimleri okaň we düşüniň. Her ylgawyň we setiriň näme edýändigini barlaň.
- Gizlin salgylanmalary barlaň. Gizlinler $ {{syrlar.NAME} called bilen atlandyrylýarmy ýa-da koda salynýarmy?
- Locallyerli / CI synap görüň. Kiçijik synag ammarynda işlediň, gyzyl-ýaşyl (şowsuz) hereketine serediň.
- Graduallyuwaş-ýuwaşdan giňeliň. Ilki bilen diňe CI (synag) goşuň, soňra guruň, iň soňky ýerleşdirmäni goşuň.
Howpsuzlyk: turbada gizlin we rugsat
CI / CD syrlaryň iň köp ýaýran ýerlerinden biridir. Üç altyn düzgün:
- Hiç haçan syrlary YAML-da aç-açan ýazmaň. Platformanyň gizlin ammaryny (GitHub Secrets, GitLab CI / CD üýtgeýjileri) ulanyň we $ {{syrlar.X} with bilen çagyryň.
- Iň az artykmaçlyk Turbageçirijä beren belligiňiz diňe zerur derejede ygtyýara eýe bolar. Rugsatlar bilen muny daraldyň: GitHub Hereketlerinde blokirläň.
- Gündelige gizlin basmaň. Eho $ TOKEN ýaly setirler gündeligiň syryny açýar. Platformalar maskasy, ýöne seresap boluň.
Üns beriň: Amatlylyk üçin AI käwagt parol: 123456 ýa-da aşa giň rugsatlar ýaly içerki bahalary goýýar: hemmesini nusga turbalaryna ýazyň. Elmydama muny düzediň: gizlinligi salgylanmak, ýykmak rugsady.
deňeşdirme diagrammasy
düşünjesi
GitHub hereketleri
GitLab CI
Sazlama faýly
.github / iş akymlary / *. yml
.gitlab-ci.yml
gurluşyk bölümi
iş tertibi → iş → ädim
tapgyr → iş
trigger
on:
düzgünleri: / diňe:
Gizlin çagyryş
$ {{syrlar.NAME}}
$ ADY (CI / CD üýtgeýjiler)
Taýýar komponent
ulanýar: hereket @ v4
öz içine alýar: / şablon
ylgaýjy
işleýän:
bellikler:
üç sany kiçi halat
1-nji waka - 6 sagat 40 minuta çenli azaldyldy. Bir topar elde synag-gurmak-ýerleşdirmek işini awtomatlaşdyrmak isledi, ýöne YAML bilen hiç kim tanyş däldi. YZ-ny "Node.js taslamasy, GitHub Hereketleri, npm synagy we npm gurmak, diňe v * belliginde ýerleşdirmek" diýip häsiýetlendirdiler. AI 40 setir işleýän skelet öndürdi; Topar her ädimini barlady we 40 minutda göni efirde çykdy. El bilen ýazan bolsalar, bir günlük iş bolardy.
2-nji hadysa - Hakyky tanamak, howpsuzlyk gowşaklygyny aldy. Bir inerener AI-den iş akymyny ýerleşdirmegini haýyş etdi. Çykyşda rugsatlar bar: ýazmak-hemmesi - belligiň ammarlara, paketlere, hemme zada ýazyp biljekdigini aňladýar. Inerener muny görüp, rugsatlar bilen gysgaltdy: {mazmuny: oka, paketler: ýaz}. Bu, ähli ammaryň ornuny tutýan garaşlylygyň töwekgelçiligini aradan aýyrdy.
3-nji hadysa - Galýusinator çäresi. Bir topar AI teklip eden ulanyşlary amala aşyrdy: hereketler / ýerleşdirmek-aws @ v3 setiri; Şeýle resmi çäre bolmady, AI adyny düzdi. Turbageçiriji "hereket tapylmady" bilen ýaryldy. Sapak: Bazarda ulanylýan her bir komponentiň ulanylandygyny barlaň: aslynda bar.
Göçürip boljak dört şablon
1) CI-iň esasy iş tertibi:
GitHub hereketleri üçin CI iş prosesini ýazyň. Taslama: [DIL / FRAMEWORK] .Trigger: haýyşy esasy şaha çekiň we çekiň. Dimler: baglylyklary guruň, synaglary işlediň, lint işlediň. NOOK Deploy.Runner ubuntu-iň soňky. Hiç hili syr gerek däl. YAML belläň.
2) ýerleşdirilen CD iş tertibi (ygtybarly):
[PLATFORM] üçin ýerleşdiriş işini ýazyň. Diňe 'v *' belliginde işlemeli. Maksat: [MEDIA / CLOUD]. Düzgünler: - Hiç haçan syry aç-açan ýazmaň, olary $ {{syrlary bilen çagyryň.
3) Bar bolan turbageçirijini suratlandyryň:
Aşakdaky [PLATFORM] turbageçirijini setir boýunça suratlandyryň: her bir iş näme edýär, haýsy tertipde işleýär, haýsy syry ulanýar we iň töwekgelçilikli iki nokady näme? Ahyrynda 3 sany gowulaşmagy teklip ediň. Turbageçiriji: [YAML MAZMUNY]
4) Turbageçirijini tizleşdirmek:
Aşakdaky CI turbageçirijisi haýal işleýär (dowamlylygy: [X min]). Keş ulanylyşyny, parallel işleri we gereksiz ädimleri gözden geçiriň. 5 anyk, hereketli tizlenme tekliplerini beriň we hersiniň çak edilýän täsirini ýazyň. Turbageçiriji: [YAML]
Gowşak haýyş / Güýçli haýyş
Gowşak: "GitHub Hereketleriniň işini ýazyň."
Netije: haýsy diliň, haýsy sebäpleriň döredilendigi ýa-da ýokdugy belli däl; AI umumy düwün mysalyny berýär, belki taslamaňyza laýyk gelmez we syryny gaty kodlap biler.
Güýçli: "GitHub Hereketleriniň iş prosesini ýazyň. Python 3.12 taslamasy, çekiş haýyşy we esasy iteklemek üçin pytest + ruff işlediň; NOOK; ýerleşdirmäň; turba keşi bilen garaşlylygy çaltlaşdyryň; hiç hili syr gerek däl. YAML-ny teswirler bilen eksport ediň."
Tapawut: ikinji teklip dil, trigger, çäk (ýerleşdirme ýok), öndürijilige garaşmak we howpsuzlyk çäklendirmesini berýär. Çykyş göni işleýär.
Adaty ýalňyşlyklar
- Gizlin YAML-da ýerleşdirmek. Adaty tekst paroly / token iň köp ýaýran CI gowşaklygydyr.
- Gaty giň rugsat. Hemmesini ýazmagyň ýerine iň az rugsat beriň.
- Bar bolmadyk hereket / şablona bil baglamak. AI tarapyndan ulanylanlary barlaň: Bazardaky setirler.
- CI bilen ýerleşdirmek. Synag her itergi bilen dowam edip biler, ýöne ýerleşdiriş gözegçilikde saklanmaly we tassyklanmaly.
- Keş ulanmaýar. Her işe noldan garaşlylygy gurmak turbageçirijini birnäçe minut haýalladýar.
- Ilkinji ammary göni ammarda synap görmek. Ilki bilen synag ammarynda işlediň.
Gysgaça
CI / CD turbageçirijiler, kody howpsuz önümçilige geçirýän we YAML bilen kesgitlenýän awtomatlaşdyrylan turbalardyr. AI çaltlyk bilen GitHub Hereketleri we GitLab CI üçin iş meýilnamalaryny öndürýär - ýöne platforma, dil, hereketlendiriji we ýaýlym çäkleri barada aýdyň bolmaly. Howpsuzlykda üç düzgün bar: syrlara salgylanma boýunça jaň ediň, iň az artykmaçlyklary beriň, syrlary gündelige çap etmäň. Her biriniň ulanýandygyny barlamak: / öz içine alýar: komponentiň hakykatdanam bardygyny we her ädimiň näme edýändigini.
Programma meselesi
Simpleönekeý nusga taslamasyny saýlaň (hatda diliňizde “salam dünýäsi” eder). AI ýokardaky "Esasy CI iş akymy" şablony bilen iş akymyny öndüriň. Soňra: (1) her ädimiň näme edýändigini öz sözleriňiz bilen ýazyň; (2) hiç hili syryň ýokdugyny we rugsatlaryň dardygyny barlamak; (3) Mümkin bolsa, synag tankynda işlediň we gyzyl-ýaşyl häsiýetine syn ediň.
gözegçilik sanawy
- [] Platforma, dil / çarçuwany goşdum, islegime giňişlik girizdim.
- [] Döredilen YAML-da her bir işiň we ädimiň näme edýändigine düşünýärin.
- [] Hiç bir syr açyk tekst däl; ähli $ {{syrlar.X}} / CI üýtgeýjisi.
- [] Rugsatlary iň pes derejä çenli gysgaltdym.
- [] Hereketleriň / şablonlaryň hemmesiniň hakykatdanam bardygyny barladym.
- [] Approvalerleşiş ädimini tassyklamak / goramak bilen gözegçilik etdim.