નેટવર્કની બહાર Python wheel બનાવો, અંદર પ્રકાશિત કરો
wheel ત્યાં જ બનાવો જ્યાં સ્રોત પહેલેથી છે, પછી બરાબર એ જ ફાઇલ આંતરિક પ્રકાશકને ખસેડો. ડાયજેસ્ટ અને રસીદ હસ્તાંતરણ પૂરું કરે છે.
તમારી પાસે પહેલેથી એક બિલ્ડ જોબ છે જે wheel ઉત્પન્ન કરે છે, અને એક ખાનગી રિપોઝિટરી છે જે તેને મેળવવી જોઈએ. ભૂલ એ છે કે બીજી જોબને શાખામાંથી ફરી બિલ્ડ કરવા દેવી અને પરિણામને એ જ પ્રકાશન કહેવું. જે ફાઇલ પરીક્ષણ પસાર થઈ છે તેને ખસેડો, ડાયજેસ્ટ પ્રમાણે તેનું નામ રાખો, અને અપલોડ ઓળખપત્ર અંદર જ રાખો. નીચેની ચાલ એક આર્ટિફેક્ટને જાહેર CI રનરથી આંતરિક પ્રકાશક સુધી અનુસરે છે.
જ્યાં સ્રોત પહેલેથી છે ત્યાં જ બિલ્ડ કરો
બિલ્ડ એ જોબમાં ચલાવો જેની પાસે પહેલેથી સ્રોત, સાધન-શૃંખલા અને પરીક્ષણ સેટ છે. ખાનગી રિપોઝિટરી વિશે એવું કંઈ નથી જે એ જોબને ત્યાં પહોંચવાની ફરજ પાડે. પ્રોજેક્ટ પહેલેથી જે પર્યાવરણ વાપરે છે ત્યાં બિલ્ડ ફ્રન્ટએન્ડ સ્થાપિત કરો, પછી પ્રોજેક્ટ બંને વિતરણ ફોર્મેટ મોકલતો હોય તો બંને બનાવો.
python -m build --sdist --wheel --outdir dist
python -m twine check dist/*
આઉટપુટ ડિરેક્ટરી નાની અને એકવાર વાપરી શકાય તેવી રાખો. આગળ લઈ જવા લાયક એકમાત્ર વસ્તુ એ ફાઇલો છે જે આગલી જોબ પ્રકાશિત કરશે, તેમજ તેમના હેશ. બાકીનું બધું, વર્ચ્યુઅલ પર્યાવરણ અને કેશ સહિત, નોંધાયેલા સ્રોત સુધારણામાંથી ફરી બનાવી શકાય છે. પાતળું આર્ટિફેક્ટ સમીક્ષા કરવા પણ સરળ છે, કારણ કે તેમાંની દરેક ફાઇલ એવી ફાઇલ છે જે કોઈ નિરીક્ષણ કરી શકે.
તેમને શું બનાવ્યું તે નોંધો: ફાઇલ નામોમાંથી પેકેજનું નામ અને આવૃત્તિ, સ્રોત સુધારણા, અને જે વર્કફ્લો રન તેમને બનાવ્યું. ફક્ત આવૃત્તિ શબ્દમાળા કોઈ ફાઇલ ઓળખતી નથી, કારણ કે એ જ આવૃત્તિ બે અલગ commitમાંથી બે વાર બનાવી શકાય છે. આર્ટિફેક્ટ વર્ણનમાં ફાઇલ નામોની બાજુમાં સુધારણા લખો, અને એ નોંધને હસ્તાંતરણનો ભાગ ગણો.
બાઇટ ખસેડો, ફરી બિલ્ડ કરવાની સૂચનાઓ નહીં
બીજું બિલ્ડ બીજું ઉત્પાદન છે. સમયચિહ્ન, બંડલ કરેલા આધાર અને સાધનની આવૃત્તિઓ બધા બાઇટ બદલી શકે છે, તેથી ફરી બિલ્ડને પોતાના પરીક્ષણ પુરાવા અને પોતાની સમીક્ષા જોઈએ. એના બદલે સમીક્ષા થયેલી ફાઇલોને આગળ વધારો.
વિતરણ ફાઇલોને તમારા CI પ્લેટફોર્મ પૂરી પાડતા આર્ટિફેક્ટ સ્ટોરમાં અપલોડ કરો, અને આંતરિક જોબને શાખાના નામને બદલે એ ચોક્કસ આર્ટિફેક્ટનો સંદર્ભ આપો.
sha256sum dist/*.whl dist/*.tar.gz
# keep the digests beside the run id in the artifact description
જો તમારું પ્લેટફોર્મ સહી કરેલ ઉદ્ગમને સમર્થન આપે, તો તેને આર્ટિફેક્ટની પ્રમાણિત કરવા અને પછીથી અપેક્ષિત રિપોઝિટરી, વર્કફ્લો અને સ્રોત સુધારણા ચકાસવા કહો. GitHubનું પ્રમાણીકરણ દસ્તાવેજ આ પ્રકારના દાવા વર્ણવે છે. માન્ય સહી ઉદ્ગમનો પુરાવો છે, તે ભેદ્યતા સ્કેન નથી અને અધિકૃતિનો નિર્ણય પણ નથી.
અપલોડ પહેલાં અંદર ચકાસો
આંતરિક જોબ એ ચકાસવાથી શરૂ થાય છે કે મળેલી ફાઇલ એ જ ફાઇલ છે જે મંજૂર થઈ હતી. ડાયજેસ્ટને બિલ્ડ જોબની નોંધ સાથે સરખાવો, જે આવ્યું તેમાંથી ફરી ગણાયેલા મૂલ્ય સાથે નહીં.
sha256sum -c digests.txt
python -m twine check dist/*
પછી મેટાડેટા વાંચો. પેકેજનું નામ, આવૃત્તિ અને ઘોષિત આધાર તમે મંજૂર કરેલી સમીક્ષા સાથે મેળ ખાવા જોઈએ. જે wheelનું નામ યોગ્ય દેખાય છે પણ આધાર પિન બદલાઈ ગયા છે તે એ જ લેબલ પહેરેલું બીજું પેકેજ છે. મેટાડેટા ખસી ગયું હોય તો આર્ટિફેક્ટને અમંજૂર ગણો અને શોધો કે કયા બિલ્ડે તેને બનાવ્યું.
જો ડાયજેસ્ટ મેળ ન ખાય, તો અટકો. અપલોડ કરશો નહીં, અને ફાઇલને તેની જગ્યાએ ફરી બિલ્ડ કરીને સુધારશો નહીં; તે પરિવહનમાં કંઈક બદલાયું તેનો પુરાવો ભૂંસી નાખે છે. અસંગતિનો અર્થ છે કે આર્ટિફેક્ટ સ્ટોર, ડાઉનલોડ પગલું અથવા નોંધ ખોટી છે, અને પ્રકાશન પ્રકાશિત થાય તે પહેલાં દરેકને સમજૂતી મળવી જોઈએ.
નકલી આવૃત્તિના જવાબનું નિકાલ કરો
ખાનગી રિપોઝિટરી સામાન્ય રીતે હાલની આવૃત્તિ પર ફરીથી લખવાનો ઇનકાર કરે છે, અને એ ઇનકાર એક લક્ષણ છે. જ્યારે આવૃત્તિ હોવાને કારણે અપલોડ નિષ્ફળ જાય, ત્યારે એ આવૃત્તિ માટે રિપોઝિટરીની નોંધ તપાસો અને તે જે ફાઇલો રાખે છે તેને તમે પ્રકાશિત કરવા ધારેલા ડાયજેસ્ટ સાથે સરખાવો.
હાલની આવૃત્તિનો અર્થ એ હોઈ શકે કે પહેલાનું અપલોડ સફળ થયું અને જવાબ ખોવાઈ ગયો, અથવા કોઈએ એ જ નંબર હેઠળ અલગ સામગ્રી પ્રકાશિત કરી.
આવૃત્તિ ભૂંસો નહીં, અને ભૂલ ટાળવા નવો નંબર શોધી કાઢશો નહીં. પ્રકાશનના માલિક સાથે નક્કી કરો કે સંગ્રહિત સામગ્રી સ્વીકાર્ય છે કે નહીં, પછી પરિણામ નોંધો. જો સામગ્રી અલગ હોય, તો તમારી પાસે આવૃત્તિકરણની સમસ્યા છે, પાઇપલાઇનની નહીં.
અપલોડ ઓળખપત્ર એક તરફ રાખો
ફક્ત આંતરિક પ્રકાશકને રિપોઝિટરી ઓળખપત્રની જરૂર છે, અને તે પણ ફક્ત અપલોડ જેટલા સમય માટે. ટોકનને લક્ષ્ય રિપોઝિટરી અને અપલોડ ક્રિયાઓ સુધી મર્યાદિત કરો, તેને આંતરિક સિસ્ટમના ગુપ્ત સંગ્રહમાં રાખો, અને બિલ્ડ જોબની બહાર સંપૂર્ણ રાખો. જો બિલ્ડ જોબ પ્રકાશિત કરી શકે, તો જે પણ બિલ્ડ બદલી શકે તે પ્રકાશિત કરી શકે.
કયા આંતરિક વર્કફ્લો પ્રકાશક શરૂ કરી શકે તે પણ મર્યાદિત કરો. જરૂરી મંજૂરી સાથેનું મેન્યુઅલ ટ્રિગર પ્રકાશન માટે વ્યાજબી ડિફોલ્ટ છે; કોઈપણ શાખામાં push નહીં.
પૂર્ણ થયેલા પ્રકાશને પાછળ ત્રણ વસ્તુઓ છોડવી જોઈએ: વિતરણ ફાઇલો, સ્રોત સુધારણા સાથે તેમના ડાયજેસ્ટ, અને એ જ આવૃત્તિ દર્શાવતી રિપોઝિટરી નોંધ.