Usunomsebenzi wokwakha okhiqiza i-wheel kanye nendawo yokugcina eyimfihlo okufanele iyithole. Iphutha liwukuvumela umsebenzi wesibili ukuthi wakhe kabusha kusuka egatsheni bese ubiza umphumela ngokuthi ukukhishwa okufanayo. Hambisa ifayela elihloliwe, linike igama nge-digest, futhi gcina ubufakazi bokulayisha ngaphakathi. Isiqondiso esingezansi silandela i-artifact eyodwa kusuka ku-CI runner yomphakathi kuya kumshicileli wangaphakathi.

Yakha lapho umthombo ukhona kakade

Qalisa ukwakha kumsebenzi osunomthombo, ithuluzi lokusebenza kanye nesethi yokuhlola. Akukho okumayelana nendawo yokugcina eyimfihlo okudinga ukuthi lowo msebenzi uyifinyelele. Faka i-build frontend endaweni okusetshenziswa kuyo iphrojekthi, bese ukhiqiza zombili izinhlobo zokusabalalisa uma iphrojekthi ihambisa zombili.

python -m build --sdist --wheel --outdir dist
python -m twine check dist/*

Gcina indawo yokuphuma incane futhi isetshenziswe kanye. Into kuphela efanele ukuqhubekiswa phambili amafayela azoshicelelwa umsebenzi olandelayo, kanye nama-hash awo. Konke okunye, kuhlanganise izindawo ezibonakalayo kanye ne-cache, kungakhiwa kabusha kusuka ekubuyekezweni komthombo okurekhodiwe. I-artifact encane futhi ilula ukuyihlola, ngoba wonke amafayela kuyo yifayela umuntu angalihlola.

Rekhoda okukhiqize: igama lephakethe kanye nenguqulo kusuka emagameni amafayela, ukubuyekezwa komthombo, kanye nokugijima kwe-workflow okukudale. Intambo yenguqulo iyodwa ayikwazi ukukhomba ifayela, ngoba inguqulo efanayo ingakhiwa kabili kusuka kuma-commit ahlukene. Bhala ukubuyekezwa eduze kwamagama amafayela encazelweni ye-artifact, futhi thatha lokho kurekhodiwe njengengxenye yokudluliswa.

Hambisa ama-byte, hhayi imiyalelo yokwakha kabusha

Ukwakha kwesibili kungumkhiqizo wesibili. Izimpawu zesikhathi, okuncikile okufakiwe kanye nezinguqulo zamathuluzi konke kungashintsha ama-byte, ngakho ukwakha kabusha kudinga ubufakazi bakho bokuhlola kanye nokuhlolwa kwakho. Esikhundleni salokho, phakamisa amafayela ahloliwe.

Layisha amafayela okusabalalisa endaweni yokugcina ama-artifact enikezwa yiplatifomu yakho ye-CI, futhi unikeze umsebenzi wangaphakathi isethenjwa kuleyo artifact ethile hhayi igama legatsha.

sha256sum dist/*.whl dist/*.tar.gz
# keep the digests beside the run id in the artifact description

Uma iphlatifomu yakho isekela imvelaphi esayiniwe, yicela ukuthi iqinisekise i-artifact, bese kamuva uqinisekisa indawo yokugcina, i-workflow kanye nokubuyekezwa komthombo okulindelekile. I-GitHub idokhumenti yokuqinisekisa ichaza izimangalo zalolo hlobo. Isiginesha evumelekile ingubufakazi bemvelaphi, hhayi ukuskena kobungozi futhi hhayi isinqumo sokugunyaza.

Qinisekisa ngaphakathi ngaphambi kokulayisha

Umsebenzi wangaphakathi uqala ngokuhlola ukuthi ifayela elitholiwe yilona fayela elagunyazwa. Qhathanisa ama-digest nokurekhodiwe kumsebenzi wokwakha, hhayi ngenani elibalwe kabusha kusuka kulokho okufikile.

sha256sum -c digests.txt
python -m twine check dist/*

Bese ufunda i-metadata. Igama lephakethe, inguqulo kanye nokuncikile okumisiwe kufanele kuhambisane nokuhlolwa okukugunyazile. I-wheel egama layo ibukeka ilungile kodwa izikhonkwane zayo zokuncikile zishintshile iyiphakethe elinye eligqoke ilebula elifanayo. Uma i-metadata inyakazile, thatha i-artifact njengengagunyaziwe futhi uthole ukuthi ukwakha kuphi okukhiqize.

Uma ama-digest engahambisani, yima. Ungalayishi futhi ungalungisi ifayela ngokulakha kabusha endaweni yalo; lokho kususa ubufakazi bokuthi kukhona okushintshile endleleni. Ukungahambisani kusho ukuthi indawo yokugcina ama-artifact, isinyathelo sokulanda noma okurekhodiwe kukhona okungalungile, futhi ngakunye kwalokho kufanele kuchazwe ngaphambi kokuba ukukhishwa kushicilelwe.

Bhekana nempendulo yenguqulo ephindiwe

Izindawo zokugcina eziyimfihlo ngokuvamile ziyenqaba ukuphinda zibhale inguqulo ekhona, futhi lokho kunqaba kuyisici. Uma ukulayisha kwehluleka ngenxa yokuthi inguqulo ikhona, hlola okurekhodiwe endaweni yokugcina kwaleyo nguqulo futhi uqhathanise amafayela eyigcinile nama-digest obuhlela ukuwashicilela.

Inguqulo ekhona ingase isho ukuthi ukulayisha kwangaphambilini kwaphumelela futhi impendulo yalahleka, noma ukuthi othile washicilela okuqukethwe okuhlukile ngaphansi kwenombolo efanayo.

Ungayisusi inguqulo, futhi ungasunguli inombolo entsha ukuze udlule iphutha. Nquma nomnikazi wokukhishwa ukuthi okuqukethwe okugciniwe kwamukeleka yini, bese urekhoda umphumela. Uma okuqukethwe kuhlukile, unenkinga yenguqulo, hhayi inkinga ye-pipeline.

Gcina ubufakazi bokulayisha ohlangothini olulodwa

Umshicileli wangaphakathi kuphela odinga ubufakazi bendawo yokugcina, futhi kuphela isikhathi sokulayisha. Khawulela ithokheni endaweni yokugcina eqondiwe kanye nemisebenzi yokulayisha, yigcine endaweni yezimfihlo zesistimu yangaphakathi, futhi uyishiye ngokuphelele ngaphandle komsebenzi wokwakha. Uma umsebenzi wokwakha ukwazi ukushicilela, khona-ke noma ngubani ongashintsha ukwakha angashicilela.

Khawulela nokuthi yimaphi ama-workflow angaphakathi angakwazi ukuqalisa umshicileli. Isiqalisi sesandla esidinga ukugunyazwa siyisilinganiso esifanele sokukhishwa; ukusunduza kunoma iliphi igatsha akusikho.

Ukukhishwa okuqediwe kufanele kushiye izinto ezintathu: amafayela okusabalalisa, ama-digest awo kanye nokubuyekezwa komthombo, kanye nokurekhodiwe kwendawo yokugcina okubonisa inguqulo efanayo.

Izihloko ezihlobene