Artifact — build, 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:
- executable;
- library;
- package;
- container image;
- mobile APK;
- archive;
- installer;
- documentation;
- test report;
- coverage report;
- debug symbol;
- SBOM.
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:
- nom;
- versiya;
- checksum;
- metadata;
- retention;
- access;
- promotion;
- replication
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:
- source commit;
- build number;
- build vaqti;
- pipeline;
- toolchain;
- dependency;
- platform;
- checksum;
- signature;
- SBOM;
- provenance.
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.
- public key;
- certificate;
- transparency log;
- trust policy
orqali signature’ni tekshiradi.
Signature artifact kim tomonidan chiqarilganini tasdiqlashga yordam beradi.
Provenance
Build provenance artifact qanday yaratilganini ko‘rsatadi.
Unda:
- source;
- builder;
- workflow;
- dependency;
- parameter;
- timestamp
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.
- 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:
- versiya;
- checksum;
- source commit;
- platforma;
- architecture;
- signature;
- metadata;
- repository;
- retention;
- cache;
- build ID
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