Eraiki Python wheel saretik kanpo, eta argitaratu barrutik
Eraiki wheel iturburua dagoen tokian, eta gero eraman fitxategi zehatza barne-argitaratzaile batera. Digestek eta ordainagiriak ixten dute eskualdaketa.
Badaukazu jada wheel bat sortzen duen build-lan bat, eta hura jaso beharko lukeen biltegi pribatu bat. Akatsa da bigarren lan batek adar batetik berreraikitzea eta emaitzari argitalpen berbera deitzea. Eraman probatu zen fitxategia, izendatu digestaren arabera, eta eduki igoeraren kredentziala barruan. Beheko ibilbideak artefaktu bat jarraitzen du CI exekutatzaile publiko batetik barne-argitaratzaile batera.
Eraiki iturburua dagoen tokian
Exekutatu build-a jadanik iturburua, tresna-katea eta test-multzoa dauzkan lanean. Biltegi pribatuari buruzko ezerk ez du eskatzen lan hori harengana iristea. Instalatu build-aren frontenda proiektuak jadanik erabiltzen duen ingurunean, eta gero sortu bi distribuzio-formatuak proiektuak biak bidaltzen baditu.
python -m build --sdist --wheel --outdir dist
python -m twine check dist/*
Eduki irteera-direktorioa txiki eta erabilera bakarrekoa. Aurrera eramatea merezi duen gauza bakarra hurrengo lanak argitaratuko dituen fitxategiak dira, haien hashekin batera. Gainerako guztia, ingurune birtualak eta cacheak barne, erregistratutako iturburu-berrikuspenetik berreraiki daiteke. Artefaktu argal bat ere errazago berrikusten da, bertako fitxategi bakoitza norbaitek ikus dezakeen fitxategia delako.
Erregistratu zer sortu zituen: pakete-izena eta bertsioa fitxategi-izenetatik, iturburu-berrikuspena, eta sortu zituen workflow exekuzioa. Bertsio-kate batek soilik ez du fitxategi bat identifikatzen, bertsio bera bi aldiz eraiki daitekeelako commit ezberdinetatik. Idatzi berrikuspena fitxategi-izen ondoan artefaktuaren deskribapenean, eta hartu erregistro hori eskualdaketaren parte gisa.
Eraman byteak, ez berreraikitzeko jarraibideak
Bigarren build bat bigarren produktu bat da. Denbora-markek, bildutako dependentziek eta tresna-bertsioek byteak alda ditzakete, beraz berreraikuntzak bere test-froga eta bere berrikuspena behar ditu. Bultzatu horren ordez berrikusitako fitxategiak.
Igo distribuzio-fitxategiak zure CI plataformak eskaintzen duen artefaktu-biltegira, eta eman barne-lanari artefaktu zehatz horren erreferentzia, adar-izen baten ordez.
sha256sum dist/*.whl dist/*.tar.gz
# keep the digests beside the run id in the artifact description
Zure plataformak sinatutako jatorria onartzen badu, eskatu artefaktua egiaztatzeko eta gero espero den biltegia, workflow-a eta iturburu-berrikuspena egiaztatzeko. GitHub-en egiaztapen-dokumentazioak horrelako baieztapenak deskribatzen ditu. Baliozko sinadura jatorriaren froga da, ez da zaurgarritasun-eskaneatzea eta ez da baimen-erabakia.
Egiaztatu barruan igo aurretik
Barne-lanak jasotako fitxategia onartutako fitxategia dela egiaztatzen du lehenik. Konparatu digestak build-lanaren erregistroarekin, ez iritsi denetik berrikalkulatutako balio batekin.
sha256sum -c digests.txt
python -m twine check dist/*
Gero irakurri metadatuak. Pakete-izenak, bertsioak eta adierazitako dependentziek onartu zenituen berrikuspenarekin bat egin behar dute. Izena zuzena dirudien baina dependentzia-pinak aldatu zaizkion wheel bat etiketa bera daraman beste pakete bat da. Metadatuak mugitu badira, hartu artefaktua onartugabetzat eta aurki ezazu zein buildek sortu zuen.
Digestak bat ez badatoz, gelditu. Ez igo, eta ez konpondu fitxategia bertan berreraikiz; horrek trantsituan zerbait aldatu dela frogatzen duen ebidentzia ezabatzen du. Desadostasunak esan nahi du artefaktu-biltegia, deskarga-urratsa edo erregistroa oker daudela, eta horietako bakoitzak azalpen bat merezi du argitalpen bat kaleratu aurretik.
Kudeatu bertsio bikoitzaren erantzuna
Biltegi pribatuek normalean uko egiten diote lehendik dagoen bertsio bat gainidazteari, eta uko egite hori ezaugarri bat da. Igoerak huts egiten badu bertsioa badelako, ikuskatu biltegiaren erregistroa bertsio horretarako, eta konparatu gordetzen dituen fitxategiak argitaratzeko asmoa zenituen digestekin.
Lehendik dagoen bertsio batek esan nahi dezake aurreko igoera bat ondo joan zela eta erantzuna galdu zela, edo norbaitek eduki desberdina argitaratu zuela zenbaki beraren pean.
Ez ezabatu bertsioa, eta ez asmatu zenbaki berri bat errorearen inguruan pasatzeko. Erabaki argitalpenaren jabearekin gordetako edukia onargarria den, eta gero erregistratu emaitza. Edukia desberdina bada, bertsio-kudeaketaren arazoa duzu, ez pipeline-arena.
Eduki igoeraren kredentziala alde batean
Barne-argitaratzaileak soilik behar ditu biltegiko kredentzialak, eta igoerak irauten duen bitartean bakarrik. Mugatu tokena helburuko biltegira eta igoera-eragiketetara, gorde sistema barneko sekretu-biltegian, eta utzi build-lanetik erabat kanpo. Build-lanak argitaratu badezake, build-a aldatu dezakeen edonork argitaratu dezake.
Mugatu ere zein barne-workflowk abiarazi dezaketen argitaratzailea. Eskuzko abiarazle bat beharrezko onespenarekin argitalpenetarako lehenespen zentzuzkoa da; edozein adarrera egindako push ez da.
Amaitutako argitalpenak hiru gauza utzi behar ditu atzean: distribuzio-fitxategiak, haien digestak iturburu-berrikuspenarekin, eta bertsio bera erakusten duen biltegi-erregistroa.