Mae gennych chi eisoes swydd adeiladu sy'n cynhyrchu wheel, a chronfa breifat a ddylai ei derbyn. Y camgymeriad yw gadael i ail swydd ailadeiladu o gangen a galw'r canlyniad yr un rhyddhau. Symudwch y ffeil a brofwyd, enwch hi wrth y trawstoriad, a chadwch y cymhwyster uwchlwytho y tu mewn. Mae'r daith isod yn dilyn un arteffact o redwr CI cyhoeddus at gyhoeddwr mewnol.

Adeiladwch lle mae'r ffynhonnell eisoes

Rhedwch yr adeiladiad yn y swydd sydd eisoes â'r ffynhonnell, y gadwyn offer a'r gyfres brawf. Nid oes unrhyw beth am y storfa breifat yn mynnu bod y swydd honno'n ei chyrraedd. Gosodwch y ffrynt adeiladu yn yr amgylchedd y mae'r prosiect eisoes yn ei ddefnyddio, yna cynhyrchwch y ddau fformat dosbarthu os yw'r prosiect yn cludo'r ddau.

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

Cadwch y cyfeiriadur allbwn yn fach ac yn dafladwy. Yr unig bethau sy'n werth eu cario ymlaen yw'r ffeiliau y bydd y swydd nesaf yn eu cyhoeddi, ynghyd â'u hashes. Gellir ailadeiladu popeth arall, gan gynnwys amgylcheddau rhithwir a chacheau, o'r diwygiad ffynhonnell a gofnodwyd. Mae arteffact cul yn haws ei adolygu hefyd, oherwydd pob ffeil ynddo yw ffeil y gall rhywun ei harchwilio.

Cofnodwch beth a'u cynhyrchodd: enw'r pecyn a'r fersiwn o enwau'r ffeiliau, y diwygiad ffynhonnell, a'r rhediad llif gwaith a'u creodd. Nid yw llinyn fersiwn ar ei ben ei hun yn adnabod ffeil, oherwydd gellir adeiladu'r un fersiwn ddwywaith o commits gwahanol. Ysgrifennwch y diwygiad wrth ymyl enwau'r ffeiliau yn nogfen yr arteffact, a thriniwch y cofnod hwnnw fel rhan o'r trosglwyddiad.

Symudwch bytes, nid cyfarwyddiadau i ailadeiladu

Mae ail adeiladiad yn ail gynnyrch. Gall stampiau amser, dibyniaethau wedi'u bwndelu a fersiynau offer newid y bytes, felly mae angen ei dystiolaeth brawf ei hun a'i adolygiad ei hun ar ailadeiladiad. Dyrchafwch y ffeiliau a adolygwyd yn lle hynny.

Uwchlwythwch y ffeiliau dosbarthu i'r storfa arteffact y mae eich platfform CI yn ei darparu, a rhowch i'r swydd fewnol gyfeirnod at yr arteffact penodol hwnnw yn hytrach nag enw cangen.

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

Os yw eich platfform yn cefnogi tarddiad wedi'i lofnodi, gofynnwch iddo ardystio'r arteffact ac wedyn ddilysu'r storfa, y llif gwaith a'r diwygiad ffynhonnell a ddisgwylir. Mae dogfennaeth ardystio GitHub yn disgrifio hawliadau o'r fath. Mae llofnod dilys yn dystiolaeth o darddiad, nid yw'n sgan bregusrwydd ac nid yw'n benderfyniad awdurdodi.

Dilyswch y tu mewn cyn uwchlwytho

Mae'r swydd fewnol yn dechrau drwy wirio mai'r ffeil a dderbyniwyd yw'r ffeil a gymeradwywyd. Cymharwch drawstoriaid â'r cofnod o'r swydd adeiladu, nid â gwerth a ailgyfrifwyd o beth bynnag a gyrhaeddodd.

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

Yna darllenwch y metadata. Dylai enw'r pecyn, y fersiwn a'r dibyniaethau a ddatganwyd gyd-fynd â'r adolygiad a gymeradwyoch. Mae wheel y mae ei henw'n edrych yn iawn ond y mae ei phinnau dibyniaeth wedi newid yn becyn gwahanol yn gwisgo'r un label. Os symudodd y metadata, triniwch yr arteffact fel un heb ei gymeradwyo a darganfyddwch pa adeiladiad a'i cynhyrchodd.

Os nad yw'r trawstoriaid yn cyfateb, stopiwch. Peidiwch ag uwchlwytho, a pheidiwch â thrwsio'r ffeil drwy ei haildeiladu ar y safle; mae hynny'n dileu'r dystiolaeth bod rhywbeth wedi newid wrth deithio. Mae anghysondeb yn golygu bod y storfa arteffact, y cam lawrlwytho neu'r cofnod yn anghywir, ac mae pob un ohonynt yn haeddu esboniad cyn i ryddhau gael ei gyhoeddi.

Delio â'r ateb fersiwn dyblyg

Mae storfeydd preifat fel arfer yn gwrthod trosysgrifo fersiwn sy'n bodoli, ac mae'r gwrthodiad hwnnw'n nodwedd. Pan fydd uwchlwytho yn methu oherwydd bod y fersiwn yn bodoli, archwiliwch gofnod y storfa ar gyfer y fersiwn honno a chymharwch y ffeiliau a gedwir ganddi â'r trawstoriaid roeddech yn bwriadu eu cyhoeddi.

Gall fersiwn sy'n bodoli olygu bod uwchlwytho cynharach wedi llwyddo a bod yr ateb wedi'i golli, neu gall olygu bod rhywun wedi cyhoeddi cynnwys gwahanol o dan yr un rhif.

Peidiwch â dileu'r fersiwn, a pheidiwch â dyfeisio rhif newydd i fynd heibio'r gwall. Penderfynwch gyda pherchennog y rhyddhau a yw'r cynnwys a storiwyd yn dderbyniol, yna cofnodwch y canlyniad. Os yw'r cynnwys yn wahanol, mae gennych broblem fersiynu, nid problem piblinell.

Cadwch y cymhwyster uwchlwytho ar un ochr

Dim ond y cyhoeddwr mewnol sydd angen cymwysterau'r storfa, a hynny dim ond dros hyd yr uwchlwytho. Cyfyngwch y tocyn i'r storfa darged ac i weithrediadau uwchlwytho, cadwch ef yn storfa gyfrinachau'r system fewnol, a'i adael allan o'r swydd adeiladu yn gyfan gwbl. Os gall y swydd adeiladu gyhoeddi, yna gall unrhyw un a all newid yr adeiladiad gyhoeddi.

Cyfyngwch hefyd pa lifau gwaith mewnol a ganiateir i gychwyn y cyhoeddwr. Mae sbardun â llaw gyda chymeradwyaeth ofynnol yn rhagosodiad rhesymol ar gyfer rhyddhau; nid yw gwthiad i unrhyw gangen felly.

Dylai'r rhyddhau gorffenedig adael tri pheth ar ei ôl: y ffeiliau dosbarthu, eu trawstoriaid ynghyd â'r diwygiad ffynhonnell, a chofnod storfa yn dangos yr un fersiwn.

Erthyglau cysylltiedig