Hva er et gjenstandsregister? Hvis det bare er et sted å lagre filer, kan jeg ikke bare bruke et kildekontrollsystem?
Svar
Under utvikling genererer du ganske mange forskjellige gjenstander. Disse kan omfatte:
- Kildekoden
- Den kompilerte applikasjonen
- En distribuerbar pakke
- Dokumentasjon
og potensielt andre også
Mens du kan bruke et kildekontrollsystem til å lagre dem alle, er det vanligvis ineffektivt, ettersom kildekontrollsystemer vanligvis er designet for å håndtere tekstbasert filer, og ikke binære filer. Du kan kanskje bruke dem som en enkel lagringsmekanisme, hvis de fleste utgivelsene dine er tekstbaserte, og du ikke trenger å lagre mye binær data.
Artifact-arkiver er imidlertid designet for å lagre alle slags filer, inkludert binære filer. Dette inkluderer alt fra zippede kildekoder, for å bygge resultater, til ting som dockerbilder også. De lagrer vanligvis ikke bare disse gjenstandene, men hjelper også med å administrere dem ved hjelp av forskjellige tilleggsfunksjoner, for eksempel:
- Versjonsstøtte: lagre noen metadata riktig, som når hver gjenstand ble bygget, hva deres versjon nummer er, lagre hashene deres osv.
- Oppbevaring: sørg for at du bare beholder de viktige gjenstandene, og automatisk sletter de som bare er øyeblikksbilder / ikke lenger trenger, etc. basert på forskjellige kriterier du kan sette opp
- Tilgangskontroll: konfigurer hvem som kan publisere og hvem som kan laste ned de forskjellige gjenstandene
- Kampanje: evne til å markedsføre gjenstander. For eksempel kan du ha øyeblikksbildeartefakter med en kort oppbevaringsperiode på en server i nærheten av koderne, og et eget depot i nærheten av live-serverne, der bare gjenstander som har blitt ansett som distribuerbare vises. Dette inkluderer også støtte for forskjellige versjonskanaler, og flytting av gjenstander mellom dem (som å markedsføre en bestemt versjon fra beta til stabil).
- Fungere som et eget lager for gjenstandene. Det betyr at du kan bruke det som hovedlager for maven, rubygems, docker osv. Dette kan også omfatte caching av gjenstander fra de offisielle arkivene.
Kommentarer
- Kan være verdt å legge til ' kanal ' -funksjonen over Versionning-støtten, med muligheten til å ha litt maskin som er målrettet mot den siste utgivelsen i kanal " utvikler " og produserer maskin som målretter mot en bestemt versjon i kanal " stabil ".
- @ Pierre.Vriens la til noen små kommentarer, men kanskje det kan adresseres i et eget spørsmål også
- merci, men bare i tilfelle, her er din sjanse til å adressere den ytterligere kommentaren min …
- Er det fornuftig å også holde oversikt over konfigurasjonsfiler eller inventar i denne typen arkiver?
Svar
Det er depotadministratorer og UPM (Universal package repository managers).
UPM-er kan lagre all byggeartefakt for Jenkins, teamcity etc. og kan generelt også fungere som depotmangere for mange forskjellige typer binære gjenstander Maven, npm, NuGet og mer.
Dette vil være verktøy som Jfrog Artifactory , Inedo ProGet , og Sonatype Nexus .
En ganske anstendig sammenligning er her: https://binary-repositories-comparison.github.io/