Bosh sahifa Wiki Artifact

Artifact

Artifactbuild, test yoki release jarayonida yaratilgan va keyingi bosqichda saqlanadigan, tarqatiladigan yoki ishlatiladigan fayl yoki fayllar to‘plami.

Source code artifact emas degan qat’iy qoida yo‘q, ammo DevOps va build kontekstida artifact odatda source’dan hosil qilingan natijani bildiradi.

Misollar:

Build artifact

Compiler va build tizimi yaratgan asosiy natija build artifact.

Masalan:

source → build → application-2.4.1.tar.gz

Artifact qayta build qilinmasdan test, staging va production bosqichlariga uzatilishi mumkin.

Immutable artifact

Release artifacti publish qilingandan keyin o‘zgartirilmasligi kerak.

Agar fayl mazmuni o‘zgarsa:

beriladi.

Bir xil tag ostida boshqa binary saqlash reproducibility va auditni buzadi.

Artifact repository

Artifactlar maxsus repository yoki registryda saqlanadi.

U:

ni boshqaradi.

Source Git’da, binary artifact esa artifact repositoryda saqlanishi mumkin.

Package registry

Til package’lari va container image’lari ham artifact registryda saqlanadi.

Registry turi:

bo‘lishi mumkin.

Artifact nomi

Yaxshi nom quyidagilarni ifodalaydi:

  • loyiha;
  • versiya;
  • platforma;
  • architecture;
  • variant;
  • extension.

Misol:

agent-3.1.0-linux-arm64.tar.gz

Faqat latest.zip auditable identifikatsiya uchun yetarli emas.

Metadata

Artifactga bog‘langan metadata:

Metadata fayl nomidan alohida saqlanishi mumkin.

Checksum

Cryptographic hash artifact integritysini tekshiradi.

Misol:

SHA-256

Download qilingan fayl hash bilan solishtiriladi.

Checksum tasodifiy buzilishni va boshqa mazmunni aniqlaydi, ammo checksumning o‘zi ishonchli manbadan olinmasa publisher identitysini kafolatlamaydi.

Digital signature

Artifact publisher private key bilan imzolanadi.

Consumer:

orqali signature’ni tekshiradi.

Signature artifact kim tomonidan chiqarilganini tasdiqlashga yordam beradi.

Provenance

Build provenance artifact qanday yaratilganini ko‘rsatadi.

Unda:

bo‘lishi mumkin.

Bu supply-chain hujumini aniqlash va policy qo‘llashda ishlatiladi.

Promotion

Bir artifact environmentlar bo‘ylab qayta build qilinmasdan ko‘chiriladi.

build → test → staging → production

Bu build once, deploy many tamoyili.

Har muhit uchun config tashqaridan beriladi.

Production uchun boshqa build qilish test qilingan artifact bilan production artifact orasida farq yaratadi.

Retention

Barcha artifactni abadiy saqlash storage xarajatini oshiradi.

Retention siyosati:

  • release artifactlarni uzoq saqlash;
  • pull request buildlarini qisqa saqlash;
  • deprecated snapshotlarni tozalash;
  • legal yoki compliance talabi;
  • rollback uchun minimal tarix.

O‘chirishdan oldin dependency va deployment holati tekshiriladi.

Snapshot artifact

Development build o‘zgaruvchan yoki vaqtinchalik snapshot versiyaga ega bo‘lishi mumkin.

Snapshot:

  • tez-tez publish qilinadi;
  • stable emas;
  • keyingi build bilan almashtirilishi mumkin.

Production dependency immutable release versiyaga tayanadi.

Test artifact

Test jarayonida ham artifact yaratiladi:

Failure tahlili uchun ular CI’dan yuklab olinadi.

Debug symbol

Release binary’dan debug symbol alohida artifactga ajratilishi mumkin.

Production binary kichik va internal symbolsiz bo‘ladi.

Crash dump symbol server orqali asl function va source qatoriga bog‘lanadi.

Symbol artifact aniq build ID bilan mos bo‘lishi shart.

Container image

Container image ham versionlangan artifact.

U:

  • filesystem layer;
  • config;
  • entrypoint;
  • environment metadata;
  • digest

ga ega.

Tag o‘zgarishi mumkin, digest esa content identity beradi.

Production deployment digest bilan pin qilinishi mumkin.

Model artifact

Machine learning tizimida:

birgalikda artifact bo‘lishi mumkin.

Faqat weight fayli to‘liq reproduksiya uchun yetarli emas.

Artifact va binary

Binary artifact turlaridan biri.

Artifact text, JSON, documentation yoki archive bo‘lishi ham mumkin.

“Artifact” jarayon natijasini, “binary” esa ma’lumot formatini bildiradi.

Access control

Artifact repository:

  • read;
  • publish;
  • delete;
  • promote;
  • signing

huquqlarini ajratadi.

Release artifactni o‘chirish yoki almashtirish faqat cheklangan role’da bo‘ladi.

Diagnostika

Artifact muammosida:

tekshiriladi.

Noto‘g‘ri artifact deploy qilinganida faqat application version emas, aniq digest yoki hash aniqlanadi.

Artifact lineage

Bir artifact boshqa artifactlardan hosil bo‘lishi mumkin. Masalan, source package’dan binary, binarydan container image, image’dan deployment manifest yaratiladi. Lineage bu bog‘lanishni qayd etib, zaif dependency qaysi yakuniy mahsulotlarga kirganini aniqlashga yordam beradi.

Quarantine

Security scan yoki signature tekshiruvidan o‘tmagan artifact umumiy release repositoryga darhol qo‘yilmaydi. U quarantine hududida saqlanadi va policy talablarini bajargach promotion qilinadi.

Artifact manifest

Katta release bir nechta fayldan iborat bo‘lsa, manifest ularning nomi, hajmi, hash va vazifasini ro‘yxatlaydi. Installer yoki deployment vositasi manifest orqali to‘liq to‘plam mavjudligini tekshiradi.

Bog‘liq tushunchalar

Build artifact, Artifact repository, Package registry, Checksum, Digital signature, Provenance, SBOM, Container image, Release, Build