Kọ́ wheel Python ní òde nẹ́tíwọ́kì, kí o sì tẹ̀ ẹ́ jáde ní inú
Kọ́ wheel ní ibi tí orísun kóòdù wà tẹ́lẹ̀, kí o sì gbé fáìlì yẹn gan-an lọ sọ́dọ̀ atẹ̀jáde inú. Àwọn digest àti ìwé-ẹ̀rí parí ìfàṣẹ́.
O ti ní iṣẹ́ build tí ń ṣe wheel, àti ibi-ìpamọ́ àdáni kan tí ó yẹ kí ó gbà á. Àṣìṣe ni láti jẹ́ kí iṣẹ́ kejì tún kọ́ láti ẹ̀ka kan kí ó sì pe àbájáde náà ní ìtẹ̀jáde kan náà. Gbé fáìlì tí a ti dán wò, fún un ní orúkọ pẹ̀lú digest, kí o sì pa ẹ̀rí-ìdánidá ìgbé-sórí mọ́ ní inú. Àlàyé tí ó wà nísàlẹ̀ ń tẹ̀lé artifact kan láti CI runner gbangba dé atẹ̀jáde inú.
Kọ́ ní ibi tí orísun kóòdù wà tẹ́lẹ̀
Ṣiṣẹ́ build nínú iṣẹ́ tí ó ti ní orísun kóòdù, ẹ̀rọ àti ẹ̀ka àdánwò. Kò sí ohun kan nípa ibi-ìpamọ́ àdáni tí ó béèrè kí iṣẹ́ yẹn dé ọ̀dọ̀ rẹ̀. Fi build frontend sínú àyíká tí iṣẹ́ náà ti ń lò, kí o sì gbé àwọn ọ̀nà ìpín méjèèjì jáde bí iṣẹ́ náà bá ń fi méjèèjì ránṣẹ́.
python -m build --sdist --wheel --outdir dist
python -m twine check dist/*
Jẹ́ kí àpò àbájáde kéré kí ó sì jẹ́ ti ìlò ẹ̀ẹ̀kan. Ohun kan ṣoṣo tí ó yẹ kí a gbé lọ ni àwọn fáìlì tí iṣẹ́ tí ń bọ̀ yóò tẹ̀ jáde, pẹ̀lú àwọn hash wọn. Ohun mìíràn gbogbo, pẹ̀lú àyíká virtual àti cache, ni a lè tún kọ́ láti inú àtúnyẹ̀wò orísun tí a ti kọ sílẹ̀. Artifact tí ó rẹ̀wẹ̀sì ni ó tún rọrùn láti yẹ̀wò, nítorí pé fáìlì kọ̀ọ̀kan nínú rẹ̀ jẹ́ fáìlì tí ẹnìkan lè ṣàyẹ̀wò.
Kọ sílẹ̀ ohun tí ó ṣẹ̀dá wọn: orúkọ package àti ẹ̀yà láti orúkọ fáìlì, àtúnyẹ̀wò orísun, àti ìṣiṣẹ́ workflow tí ó dá wọn. Okùn ẹ̀yà nìkan kò dánimọ̀ fáìlì, nítorí pé ẹ̀yà kan náà ni a lè kọ́ lẹ́ẹ̀mejì láti commit ọ̀tọ̀ọ̀tọ̀. Kọ àtúnyẹ̀wò náà lẹ́gbẹ̀ẹ́ orúkọ fáìlì nínú àpèjúwe artifact, kí o sì ka àkọsílẹ̀ yẹn sí apá kan ìfàṣẹ́.
Gbé àwọn byte, kì í ṣe àwọn ìtọ́ni láti tún kọ́
Build kejì jẹ́ ọjà kejì. Àwọn àmì àkókò, àwọn ìgbẹ́kẹ̀lé tí a kó pọ̀ àti àwọn ẹ̀yà irinṣẹ́ lè yí àwọn byte padà, nítorí náà ìtúnkọ́ nílò ẹ̀rí àdánwò tirẹ̀ àti àyẹ̀wò tirẹ̀. Dípò bẹ́ẹ̀, gbé àwọn fáìlì tí a ti yẹ̀wò sí ipò gíga.
Gbé àwọn fáìlì ìpín sókè sí ibi-ìpamọ́ artifact tí pẹpẹ CI rẹ ń pèsè, kí o sì fún iṣẹ́ inú ní ìtọ́kasí sí artifact pàtó yẹn dípò orúkọ ẹ̀ka.
sha256sum dist/*.whl dist/*.tar.gz
# keep the digests beside the run id in the artifact description
Bí pẹpẹ rẹ bá ṣe àtìlẹ́yìn orísun tí a fi ọwọ́ sí, béèrè kí ó jẹ́rìí artifact, lẹ́yìn náà ṣàyẹ̀wò ibi-ìpamọ́, workflow àti àtúnyẹ̀wò orísun tí a retí. Ìwé-ìtọ́kasí ìjẹ́rìí GitHub ṣàlàyé àwọn ẹ̀sùn irú yẹn. Ìforúkọsílẹ̀ tí ó wúlò jẹ́ ẹ̀rí orísun, kì í ṣe àyẹ̀wò àlébù àti kì í ṣe ìpinnu àṣẹ.
Ṣàyẹ̀wò ní inú kí o tó gbé sókè
Iṣẹ́ inú bẹ̀rẹ̀ pẹ̀lú ṣíṣàyẹ̀wò pé fáìlì tí a gbà ni fáìlì tí a fọwọ́ sí. Fi digest wé àkọsílẹ̀ láti iṣẹ́ build, kì í ṣe iye tí a tún ṣírò láti inú ohun tí ó dé.
sha256sum -c digests.txt
python -m twine check dist/*
Lẹ́yìn náà ka metadata. Orúkọ package, ẹ̀yà àti àwọn ìgbẹ́kẹ̀lé tí a kéde yẹ kí ó bá àyẹ̀wò tí o fọwọ́ sí mu. Wheel tí orúkọ rẹ̀ dà bí ẹni pé ó tọ́ ṣùgbọ́n tí àwọn pin ìgbẹ́kẹ̀lé rẹ̀ ti yí padà jẹ́ package mìíràn tí ó gbé àmì kan náà. Bí metadata bá ti lọ, ka artifact náà sí èyí tí a kò fọwọ́ sí, kí o sì wá ìmọ̀ irú build tí ó ṣẹ̀dá rẹ̀.
Bí digest kò bá mu, dúró. Má gbé e sókè, má sì tún fáìlì náà ṣe ní ipò rẹ̀; ìyẹn ń pa ẹ̀rí rẹ́ pé ohun kan yí padà ní ọ̀nà. Àìbámu túmọ̀ sí pé ibi-ìpamọ́ artifact, ìgbésẹ̀ ìgbàlódé tàbí àkọsílẹ̀ ti ṣe àṣìṣe, àti pé ọ̀kọ̀ọ̀kan wọn yẹ àlàyé kí a tó tẹ ìtẹ̀jáde jáde.
Bójú ìdáhùn ẹ̀yà ẹlẹ́ẹ̀mejì
Àwọn ibi-ìpamọ́ àdáni sábà kọ̀ láti tún ẹ̀yà tí ó wà kọ, àti pé ìkọ̀ yẹn jẹ́ ẹ̀yà kan. Nígbà tí ìgbé-sórí bá kùnà nítorí pé ẹ̀yà wà, ṣàyẹ̀wò àkọsílẹ̀ ibi-ìpamọ́ fún ẹ̀yà yẹn kí o sì fi àwọn fáìlì tí ó ní wé àwọn digest tí o fẹ́ tẹ̀ jáde.
Ẹ̀yà tí ó wà lè túmọ̀ sí pé ìgbé-sórí àkọ́kọ́ ṣàṣeyọrí tí ìdáhùn sì sọnù, tàbí pé ẹnìkan tẹ content mìíràn jáde lábẹ́ nọ́mbà kan náà.
Má pa ẹ̀yà rẹ́, má sì hù nọ́mbà tuntun láti gbà á kọjá àṣìṣe. Pinnu pẹ̀lú ẹni tí ó ni ìtẹ̀jáde bóyá content tí a ti fi pamọ́ yẹ́gbẹ́, lẹ́yìn náà kọ àbájáde sílẹ̀. Bí content bá yàtọ̀, o ní ìṣòro ẹ̀yà, kì í ṣe ìṣòro pipeline.
Pa ẹ̀rí-ìdánidá ìgbé-sórí mọ́ ní ẹ̀gbẹ́ kan
Atẹ̀jáde inú nìkan ni ó nílò ẹ̀rí-ìdánidá ibi-ìpamọ́, àti ní àkókò ìgbé-sórí nìkan. Dín token kù sí ibi-ìpamọ́ àfojúsùn àti sí àwọn ìgbésẹ̀ ìgbé-sórí, pa á mọ́ nínú ibi-ìpamọ́ àṣírí ẹ̀rọ inú, kí o sì fi í sí ìta iṣẹ́ build pátápátá. Bí iṣẹ́ build bá lè tẹ̀ jáde, ẹnikẹ́ni tí ó lè yí build padà lè tẹ̀ jáde pẹ̀lú.
Dín àwọn workflow inú tí ó lè bẹ̀rẹ̀ atẹ̀jáde kù pẹ̀lú. Ìfá àfọwọ́ pẹ̀lú àṣẹ tí ó pọn dandan jẹ́ àkọ́kọ́ tí ó bọ́gbọ́n fún àwọn ìtẹ̀jáde; títẹ̀ sí ẹ̀ka èyíkéyìí kì í ṣe bẹ́ẹ̀.
Ìtẹ̀jáde tí ó parí yẹ kí ó fi ohun mẹ́ta sílẹ̀: àwọn fáìlì ìpín, àwọn digest wọn pẹ̀lú àtúnyẹ̀wò orísun, àti àkọsílẹ̀ ibi-ìpamọ́ tí ó fi ẹ̀yà kan náà hàn.