Þú hefur nú þegar byggingarverk sem framleiðir wheel, og einkahirsingu sem á að taka við því. Mistökið er að leyfa öðru verki að byggja upp á nýtt úr grein og kalla niðurstöðuna sömu útgáfu. Flyttu skrána sem var prófuð, nefndu hana eftir tætigildinu og haltu upphleðsluauðkenninu inni. Lýsingin hér að neðan fylgir einum gagnahlut frá opinberum CI-keyrslu að innri útgefanda.

Byggðu þar sem frumkóðinn er nú þegar

Keyrðu bygginguna í verkinu sem hefur nú þegar frumkóðann, verkfærakeðjuna og prófasafnið. Ekkert við einkahirsingu krefst þess að verkið nái til hennar. Settu byggingar-framendann í umhverfið sem verkefnið notar nú þegar, og framleiddu svo bæði dreifingarsniðin ef verkefnið sendir frá sér bæði.

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

Haltu úttaksskráarsafninu litlu og einnota. Það eina sem er þess virði að flytja áfram eru skrárnar sem næsta verk mun birta, ásamt tætigildum þeirra. Allt annað, þar á meðal sýndarumhverfi og skyndiminni, er hægt að byggja upp á nýtt út frá skráðri endurskoðun frumkóðans. Grannur gagnahlutur er líka auðveldari yfirferðar, því sérhver skrá í honum er skrá sem einhver getur skoðað.

Skráðu hvað framleiddi þær: pakkanafnið og útgáfuna úr skráarnöfnunum, endurskoðun frumkóðans og keyrslu vinnuflæðisins sem bjó þær til. Útgáfustrengur einn og sér auðkennir ekki skrá, því sama útgáfa er hægt að byggja tvisvar úr mismunandi commitum. Skrifaðu endurskoðunina við hlið skráarnafnanna í lýsingu gagnahlutarins og meðhöndlaðu þá skráningu sem hluta af afhendingunni.

Flyttu bæti, ekki leiðbeiningar um að byggja upp á nýtt

Önnur bygging er önnur vara. Tímastimplar, innfelldar ósjálfstæður og verkfæraútgáfur geta allt breytt bætunum, svo endurbygging þarf eigin prófunarsönnun og eigin yfirferð. Ýttu frekar áfram skránum sem þegar hafa verið yfirfarnar.

Hladdu dreifingarskránum upp í gagnahlutageymsluna sem CI-kerfið þitt býður og gefðu innra verkinu tilvísun í þann tiltekna gagnahlut frekar en greinarnafn.

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

Ef kerfið þitt styður undirritaðan uppruna skaltu biðja það að staðfesta gagnahlutinn og síðar sannprófa vænta hirslu, vinnuflæði og endurskoðun frumkóðans. Skjöl GitHub um staðfestingar lýsa fullyrðingum af þeirri mynd. Gilt undirskrift er sönnun um uppruna, ekki veikleikaskönnun og ekki heimildarákvörðun.

Sannprófaðu að innan áður en þú hleður upp

Innra verkið byrjar á að athuga að skráin sem barst sé skráin sem var samþykkt. Berðu tætigildin saman við skráninguna úr byggingarverkinu, ekki við gildi sem endurreiknað var út frá því sem barst.

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

Lestu svo lýsigögnin. Pakkanafnið, útgáfan og tilgreindar ósjálfstæður ættu að passa við yfirferðina sem þú samþykktir. Wheel þar sem nafnið virðist rétt en festingar ósjálfstæðanna hafa breyst er önnur pakka í sama merkimiða. Ef lýsigögnin hafa færst skaltu meðhöndla gagnahlutinn sem ósamþykktan og finna hvaða bygging framleiddi hann.

Ef tætigildin stemma ekki skaltu stöðva. Ekki hlaða upp og ekki laga skrána með því að byggja hana upp á nýtt á staðnum; það þurrkar út sönnunina um að eitthvað breyttist í flutningnum. Mismunur þýðir að gagnahlutageymsla, niðurhalsskrefið eða skráningin er röng, og hvert þeirra á skýringu skilið áður en útgáfa er birt.

Takast á við svar um tvítekna útgáfu

Einkahirsur neita venjulega að skrifa yfir útgáfu sem fyrir er, og sú neitun er eiginleiki. Þegar upphleðsla mistekst vegna þess að útgáfan er til skaltu skoða skráningu hirslunnar fyrir þá útgáfu og bera skrárnar sem hún geymir saman við tætigildin sem þú ætlaðir að birta.

Útgáfa sem fyrir er getur þýtt að fyrri upphleðsla hafi tekist og svarið glatast, eða að einhver hafi birt annað efni undir sama númeri.

Ekki eyða útgáfunni og ekki búa til nýtt númer til að komast fram hjá villunni. Ákveddu með eiganda útgáfunnar hvort geymda efnið sé ásættanlegt og skráðu svo niðurstöðuna. Ef efnið er annað hefur þú útgáfuvandamál, ekki pipeline-vandamál.

Haltu upphleðsluauðkenninu á einum stað

Aðeins innri útgefandinn þarf hirsluauðkenni, og aðeins meðan upphleðslan stendur. Takmarkaðu táknið við markhirsluna og við upphleðsluaðgerðir, hafðu það í leyndargagnageymslu innra kerfisins og haltu því alfarið utan byggingarverksins. Ef byggingarverkið getur birt, þá getur hver sem getur breytt byggingunni birt.

Takmarkaðu líka hvaða innri vinnuflæði mega ræsa útgefandann. Handvirkur kveikja með skilyrtri samþykkt er sanngjarnt sjálfgefið fyrir útgáfur; push í hvaða grein sem er er það ekki.

Fullbúin útgáfa ætti að skilja þrjá hluti eftir: dreifingarskrárnar, tætigildi þeirra ásamt endurskoðun frumkóðans og skráningu hirslunnar sem sýnir sömu útgáfu.

Tengdir greinar