Kana da aikin gini da ke samar da wheel, da kuma ajiya mai zaman kanta da ya kamata ta karɓe shi. Kuskure shi ne barin wani aiki na biyu ya sake ginawa daga reshe sannan ya kira sakamakon wannan fitarwa. Matsar da fayil ɗin da aka gwada, sanya masa suna da digest, kuma ka riƙe takardar shiga ta loda a ciki. Bayanin da ke ƙasa yana bin wani artefact daga runner na CI na jama'a zuwa mai wallafa na ciki.

Gina a inda tushen lambar yake

Gudanar da ginin a aikin da yake da tushen lambar, kayan aiki, da jerin gwaje-gwaje. Babu wani abu game da ajiya mai zaman kanta da ke buƙatar wannan aikin ya isa gare ta. Saka frontend ɗin gini a yanayin da aikin ya riga ya yi amfani da shi, sannan ka samar da duka nau'ikan rarrabawa idan aikin yana aika duka biyun.

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

Riƙe babban fayil ɗin fitarwa kaɗan kuma na lokaci ɗaya. Abin da kawai ya cancanci ɗaukawa shi ne fayilolin da aiki na gaba zai wallafa, tare da hashes ɗinsu. Duk sauran, har da yanayin kama-da-wane da cache, ana iya sake gina su daga bitar tushen da aka rubuta. Ƙaramin artefact kuma yana da sauƙin dubawa, domin kowane fayil a cikinsa fayil ne da wani zai iya duba.

Rubuta abin da ya samar da su: sunan fakiti da sigar daga sunayen fayiloli, bitar tushen lambar, da gudanarwar workflow da ya ƙirƙira su. Sigar zance ɗaya ba ta gane fayil ba, domin ana iya gina wannan sigar sau biyu daga commits daban-daban. Rubuta bitar kusa da sunayen fayiloli a cikin bayanin artefact, kuma ɗauki wannan rikodin a matsayin ɓangare na miƙa.

Matsar da bytes, ba umarnin sake ginawa ba

Gini na biyu samfur na biyu ne. Tambarin lokaci, dogaro da aka haɗa, da sigogin kayan aiki duk na iya canza bytes, don haka sake ginawa yana buƙatar shaidar gwajin kansa da bitar kansa. Maimakon haka, haɓaka fayilolin da aka riga aka duba.

Loda fayilolin rarrabawa zuwa ajiyar artefact da dandalin CI naka ke bayarwa, kuma ba aikin ciki nuni ga wannan artefact ɗin musamman maimakon sunan reshe.

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

Idan dandalinka yana goyon bayan asalin da aka sa hannu, nemi ya tabbatar da artefact ɗin sannan daga baya ya tabbatar da ajiya, workflow, da bitar tushen da ake tsammani. Takardun GitHub game da tabbatarwa sun bayyana irin waɗannan da'awar. Sa hannu mai inganci shaida ce ta asali, ba binciken rauni ba ne kuma ba shawara ta izini ba ce.

Tabbatar a ciki kafin loda

Aikin ciki yana farawa da duba cewa fayil ɗin da ya karɓa shi ne fayil ɗin da aka amince da shi. Kwatanta digests da rikodin aikin gini, ba da ƙimar da aka sake lissafta daga abin da ya zo ba.

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

Sannan karanta metadata. Sunan fakiti, sigar, da dogaron da aka bayyana ya kamata su dace da bitar da ka amince da ita. Wheel wanda sunansa ya yi daidai amma pin ɗin dogaronsa ya canza wani fakiti ne daban sanye da wannan lakabin. Idan metadata ya motsa, ɗauki artefact ɗin a matsayin wanda ba a amince ba kuma gano wane gini ne ya samar da shi.

Idan digests ɗin ba su dace ba, tsaya. Kada ka loda, kuma kada ka gyara fayil ɗin ta hanyar sake ginawa a wurin; hakan yana shafe shaidar cewa wani abu ya canza yayin jigila. Rashin daidaituwa yana nufin ajiyar artefact, matakin saukewa, ko rikodin ba daidai ba ne, kuma kowanne daga cikinsu ya cancanci bayani kafin a wallafa fitarwa.

Yi maganin amsar sigar maimaitawa

Ajiyoyi masu zaman kansu yawanci suna ƙin sake rubuta sigar da ta wanzu, kuma wannan ƙin siffa ce. Lokacin da loda ya kasa saboda sigar tana nan, duba rikodin ajiyar don wannan sigar kuma kwatanta fayilolin da take riƙe da digests ɗin da ka yi niyyar wallafawa.

Sigar da ta wanzu na iya nufin loda da ya gabata ya yi nasara kuma amsar ta ɓace, ko kuma wani ya wallafa wani abu daban a ƙarƙashin wannan lamba.

Kada ka share sigar, kuma kada ka ƙirƙiri sabuwar lamba don tsallake kuskuren. Yanke shawara da mai fitarwa ko abin da aka ajiye ya dace, sannan rubuta sakamakon. Idan abin ya bambanta, kana da matsalar siga, ba matsalar pipeline ba.

Riƙe takardar shiga ta loda a gefe ɗaya

Mai wallafa na ciki kaɗai ke buƙatar takardar shiga ta ajiya, kuma kawai muddin lodawa ke gudana. Iyakance token ɗin ga ajiyar da ake nufi da ayyukan loda, riƙe shi a ma'ajiyar sirri na tsarin ciki, kuma ka bar shi gaba ɗaya daga aikin gini. Idan aikin gini zai iya wallafawa, to duk wanda zai iya canza ginin zai iya wallafawa.

Iyakance kuma waɗanne workflows na ciki za su iya fara mai wallafa. Manual trigger tare da amincewa da ake buƙata shine ingantaccen tsoho na fitarwa; push zuwa kowane reshe ba haka ba ne.

Fitarwar da aka kammala ya kamata ta bar abubuwa uku a baya: fayilolin rarrabawa, digests ɗinsu tare da bitar tushen, da rikodin ajiya da ke nuna wannan sigar.

Labarai masu alaƙa