Aonad 2 / 11

Píblínte CI/CD a dhearadh le hintleacht shaorga: GitHub Actions agus GitLab CI

Gnóthachain:

  • Cumas tuiscint a fháil ar choincheap CI/CD, anatamaíocht na píblíne (truicear, post, céim, rádala, déantán) agus na difríochtaí idir GitHub Actions agus GitLab CI agus píblínte táirgeachta hintleachta saorga a bhfuil an comhthéacs ceart acu
  • Cumas tagairtí rúnda, ceadanna agus na comhpháirteanna ar a dtugtar a bheith sa phíblíne a tháirgtear trí hintleachta saorga a sheiceáil agus a dhaingniú
  • Cumas na prionsabail a bhaineann le gan rúin a scríobh i ngnáth-théacs a chur i bhfeidhm, údarú íosta a dheonú, agus imscaradh a choinneáil faoi rialú trína scaradh ó CI

Is é croí na bogearraí nua-aimseartha an píblíne uathoibrithe trína bhfágann cód ríomhaire forbróra go dtí go sroicheann sé an custaiméir go sábháilte. CI/CD a thugtar ar an bpíobán seo. Is é CI (Comhtháthú Leanúnach) tiomsú agus tástáil uathoibríoch ar gach athrú cód; Is é an aidhm atá leis ná fabht a ghabháil sula bhfágann an forbróir an méarchlár fiú. Is éard atá i CD (Seachadadh/Imscaradh Leanúnach) cód tástálaithe a ullmhú go huathoibríoch nó fiú a scaoileadh. Comhad cumraíochta is ea píblíne CI/CD a shainíonn na céimeanna seo in ord — de ghnáth scríofa in YAML (formáid téacs cumraíochta atá inléite ag an duine).

Má scríobhtar na comhaid YAML seo de láimh bíonn sé sladmhar, briathartha agus seans maith go hearráidí; Má thiteann an eangú le spás amháin, briseann an phíblíne ar fad. Seo an áit a dtagann AI isteach: leis an gcomhthéacs ceart, táirgeann sé dréacht oibre i soicindí. Ach is é do phostsa a thuiscint agus a fhíorú cad a dhéanann gach céim a ghintear - mar is é seo an píopa a iompraíonn do chód chun cinn.

Anatamaíocht na píblíne CI/CD

Tá roinnt bunchoincheapa i ngach píblíne. Ní féidir leat aschur AI a rialú gan iad seo a bheith ar an eolas:

  • Truicear: Cad a chuireann tús leis an bPíblíne? Go hiondúil brú chuig brainse, iarratas tarraingt (iarratas cumasc), nó sceideal.
  • Jab: Aonad loighciúil a dhéanann sraith céimeanna; mar shampla "tástáil", "tógáil", "imscaradh".
  • Céim: Ordú nó gníomh amháin laistigh de phost.
  • Runner: An meaisín fíorúil nó an coimeádán ar a ritheann jabanna.
  • Déantán: An t-aschur a tháirgtear trí phost amháin agus a úsáideann poist ina dhiaidh sin (mar shampla, comhad tiomsaithe).
  • Rúnda: Faisnéis faoi rún a úsáideann Píblíne ach nár cheart fanacht i ngnáth-théacs sa stór.

Coinníonn GitHub Actions an sainmhíniú seo i gcomhaid .github/workflows/*.yml; Sreabhadh oibre → post → ordlathas céime atá san aonad. Úsáideann GitLab CI, ar an láimh eile, an chéim → struchtúr poist sa chomhad .gitlab-ci.yml. Tá an dá chomhréir ar eolas ag an AI, ach ní mór duit a rá go sainráite cén ceann atá uait.

Leid: Agus píblínte á n-iarraidh ag AI, sonraigh i gcónaí: ardán (GitHub Actions nó GitLab CI), teanga/creat (Nóid, .NET, Python…), truicear, agus cibé an ndéanfar é a imscaradh. Déanann na ceithre phíosa faisnéise seo úsáideacht an aschuir faoi dhó.

Céim ar chéim: Dearadh píblíne le AI

  1. Soiléiriú a dhéanamh ar an sprioc. Cosúil le "tástálacha a reáchtáil ar bhrú go dtí an príomhlíonra, tóg íomhá, ach ná bain úsáid as ach amháin nuair a chaitear clib".
  2. Bíodh an creatlach táirgthe. Iarr ar an AI an sreabhadh oibre bunúsach.
  3. Léigh agus tuig na céimeanna. Fíoraigh cad a dhéanann gach rith agus úsáidí líne.
  4. Seiceáil tagairtí Rúnda. An dtugtar na rúin le ${{ secrets.NAME }} nó an bhfuil siad leabaithe sa chód?
  5. Bain triail as go háitiúil/CI. Rith sé ar stór tástála beag, féach ar an iompar dearg-uaine (teip-pas).
  6. Leathnaigh de réir a chéile. Ar dtús cuir CI (tástáil), ansin tóg, cuir imscaradh leis go deireanach.

Slándáil: rún agus cead ar siúl

Tá CI/CD ar cheann de na háiteanna is mó a scaipeann rúin. Trí rialacha órga:

  1. Ná scríobh rúin i ngnáth-théacs in YAML choíche. Úsáid stór rúnda an ardáin (Rúin GitHub, Athróga GitLab CI/CD) agus glaoigh air le ${{ secrets.X }}.
  2. An phribhléid is lú. Ní bheidh ach an oiread údaráis agus is gá ag an chomhartha a thabharfaidh tú don Phíblíne. Caolaigh é seo leis na ceadanna: blocáil in GitHub Actions.
  3. Ná brúigh rúnda ar an loga. Nochtann línte cosúil le macalla $TOKEN an rún sa loga. Masc ardáin, ach bí cúramach freisin.
Rabhadh: Ar mhaithe le caoithiúlacht, cuireann AI uaireanta luachanna leabaithe cosúil le pasfhocal: 123456 nó ceadanna ró-leathan: scríobh go léir i bpíblínte samplacha. Déan é seo a shocrú i gcónaí: athraigh an rún go dtí an tagairt, fágtar cead.

chairt comparáide

coincheap

Gníomhartha GitHub

GitLab CI

Comhad cumraíochta

.gitub/sreafaí oibre/*.yml

.gitlab-ci.yml

aonad tógála

sreabhadh oibre → post → céim

stáitse → post

truicear

deich:

rialacha: / amháin:

Rún a ghairm

${{ rúin.NAME }}

$NAME (Athróga CI/CD)

Comhpháirt réidh

úsáidí: action@v4

cuir san áireamh: /teimpléad

rádala

ritheann:

clibeanna:

trí chás mion

Cás 1 - Laghdaithe go 6 uair an chloig agus 40 nóiméad. Bhí foireann ag iarraidh a bpróiseas tástála-thógála-imscartha láimhe a uathoibriú, ach ní raibh aon duine eolach ar YAML. Rinne siad cur síos ar YZ mar "tionscadal Node.js, GitHub Actions, tástáil npm agus tógáil npm ag brú chuig an bpríomhlíonra, imscaradh sa chlib v* amháin". Tháirg AI creatlach oibre de 40 líne; Dheimhnigh an fhoireann gach céim agus chuaigh siad beo i 40 nóiméad. Dá mbeadh sé scríofa acu de láimh, bheadh ​​​​sé ina lá oibre.

Cás 2 - Bhí ​​leochaileacht slándála ag baint leis an bhfíordheimhniú. D'iarr innealtóir ar an AI sreabhadh oibre a imscaradh. Áiríodh leis an aschur ceadanna: scríobh ar fad - rud a chiallaíonn go bhféadfadh an comhartha scríobh chuig an stór, pacáistí, gach rud. Thug an t-innealtóir é seo faoi deara agus chúngaigh sé é le ceadanna: { inneachar: léigh, pacáistí: scríobh }. Chuir sé seo deireadh leis an mbaol go mbeadh spleáchas fuadaithe in ionad an taisclann ar fad.

Cás 3 — Caingean siabhránach. Rith foireann amháin na húsáidí a mhol AI: gníomhartha/imscaradh-go-aws@v3; Ní raibh gníomh oifigiúil den sórt sin ann, rinne AI an t-ainm suas. Phléasc píblíne le "gníomh gan aimsiú". Ceacht: Fíoraigh sa Mhargadh go bhfuil gach comhpháirt ar a dtugtar le húsáidí: ann i ndáiríre.

Ceithre theimpléad inchóipeála

1) Sreabhadh oibre bunúsach CI:

Scríobh sreabhadh oibre CI le haghaidh Gníomhartha GitHub. Tionscadal: [TEANGA/CREAT].Treasaire: iarratas a bhrú agus a tharraingt chuig an bpríomhbhrainse. Céimeanna: spleáchais a shuiteáil, tástálacha a reáchtáil, lint a reáchtáil. NÍL Deploy.Runner ubuntu-déanaí. Níl aon rún ag teastáil. Anótáil YAML.

2) Sreabhadh oibre CD imscartha (slán):

Scríobh an sreabhadh oibre imlonnaithe do [PLATFORM]. Níor cheart go n-oibreodh sé ach ar chlib 'v*'. Sprioc: [MEÁIN/SCAL]. Rialacha: - NÁ scríobh rúin i ngnáth-théacs riamh, cuir glaoch orthu le ${{ rúin.

3) Déan cur síos ar an bpíblíne atá ann cheana féin:

Déan cur síos ar an bpíblíne [PLATFORM] seo a leanas líne ar líne: cad a dhéanann gach jab, cén t-ord ina ritheann sé, cén rún a úsáideann sé, agus cad iad an dá phointe is contúirtí a bhaineann leis? Ar deireadh, mol 3 fheabhsú.Píblíne: [ÁBHAR YAML]

4) Píblíne a bhrostú:

Tá an píblíne CI seo a leanas ag rith go mall (ré: [X min]). Scrúdú a dhéanamh le haghaidh úsáid taisce, poist comhthreomhar agus céimeanna gan ghá. Tabhair 5 mholadh nithiúla ar luasghéarú inghníomhaithe agus scríobh síos tionchar measta gach ceann díobh. Píblíne: [YAML]

Leid lag / Pras láidir

Lag: "Scríobh sreabhadh oibre Gníomhartha GitHub."

Toradh: ní léir cén teanga, cén teanga a spreagann, an bhfuil imscaradh ann; Tugann AI sampla Nód cineálach, is dócha nach n-oirfeadh do thionscadal, agus is féidir leis an rún a chódú go crua.

Láidir: "Scríobh sreabhadh oibre GitHub Actions. Tionscadal Python 3.12, rith pytest + ruff san iarratas tarraingt agus príomhbhrú; NÍL imscaradh; dlús a chur le spleáchais le taisce pip; níl aon rúin ag teastáil. Easpórtáil YAML le tuairimí."

Difríocht: tugann an dara leid an teanga, an truicear, an scóip (gan imscaradh), ionchas feidhmíochta, agus srian slándála. Oibríonn an t-aschur go díreach.

Botúin choitianta

  • An Rún a Leabú i YAML. Is é pasfhocal/comhartha gnáth-théacs an leochaileacht CI is coitianta.
  • Cead ró-leathan. Tabhair an t-íosmhéid cead atá ag teastáil seachas scríobh go léir.
  • Ag brath ar ghníomh/teimpléad nach bhfuil ann. Fíoraigh na húsáidí déanta AI: línte sa Mhargadh.
  • Mearbhall ar Imscaradh le CI. Is féidir leis an tástáil a reáchtáil ar gach brú, ach ní mór an t-imscaradh a rialú agus a fhormheas.
  • Gan taisce a úsáid. Má dhéantar spleáchais a shuiteáil ón tús ar gach rith moilliú ar an bpíblíne ag nóiméad.
  • Ag iarraidh an chéad sreabhadh oibre go díreach sa phríomh-stór. Rith ar stór tástála ar dtús é.

Go hachomair

Is píopaí uathoibrithe iad píblínte CI/CD a aistríonn cód go sábháilte go dtí an táirge agus a shainítear le YAML. Táirgeann AI gormchlónna oibre go tapa do GitHub Actions agus GitLab CI - ach ní mór duit a bheith soiléir maidir leis an ardán, an teanga, an truicear agus an raon imlonnaithe. Tá trí rialacha maidir le slándáil: glaoch ar rúin trí thagairt, deonaigh pribhléidí íosta, ná priontáil rúin sa loga. Is ortsa atá an fhreagracht a fhíorú go n-úsáideann gach ceann díobh:/cuir san áireamh: a bhfuil comhpháirt ann i ndáiríre agus cad a dhéanann gach céim.

Tasc feidhmchláir

Roghnaigh tionscadal samplach simplí (déanfaidh fiú "hello world" i do theanga). Iarr ar AI sreabhadh oibre a tháirgeadh leis an teimpléad "Sreabhadh oibre Bunúsach CI" thuas. Ansin: (1) scríobh i d’fhocail féin cad a dhéanann gach céim; (2) a fhíorú nach bhfuil aon rúin leabaithe agus ceadanna cúng; (3) Más féidir, é a reáchtáil in umar tástála agus breathnaigh ar an iompar dearg-uaine.

seicliosta

  • [ ] Chuir mé an t-ardán, an teanga/creat, scóip truicear agus imscaradh le mo leid.
  • [ ] Tuigim cad a dhéanann gach post agus céim sa YAML ginte.
  • [ ] Ní gnáth-théacs aon rún; gach athróg ${{ secrets.X }} / CI.
  • [ ] Laghdaigh mé na ceadanna don údarás íosta.
  • [ ] Dheimhnigh mé go bhfuil gach gníomh/teimpléad ar a dtugtar ann i ndáiríre.
  • [ ] Rinne mé an chéim imscartha rialaithe le ceadú/cosaint.