# बिल्ड आर्टिफ़ैक्ट और रजिस्ट्री — CI/CD Fundamentals: Pipelines, Testing और Deployment

Source: https://www.skillbyai.com/hi/cicd/cicd-artifacts

> Versioned, immutable build artifacts को registry में रखें ताकि हर जगह वही tested output deploy हो।

## आर्टिफ़ैक्ट क्या है

एक **आर्टिफ़ैक्ट** बिल्ड चरण का ठोस नतीजा है — एक Docker इमेज, एक JAR, एक कंपाइल की गई बाइनरी, एक स्टैटिक JS बंडल। असल में यही टेस्ट और डिप्लॉय होता है, सोर्स कोड खुद नहीं।

## वर्ज़निंग

हर आर्टिफ़ैक्ट को एक अपरिवर्तनीय पहचानकर्ता मिलता है — एक सेमांटिक वर्ज़न, एक git कमिट SHA, या एक बिल्ड नंबर। इससे आप बता सकते हैं कि प्रोडक्शन में ठीक क्या चल रहा है, और ज़रूरत पड़ने पर ठीक वही बिल्ड दोबारा डिप्लॉय कर सकते हैं।

## लेबल वाला गोदाम

एक **आर्टिफ़ैक्ट रजिस्ट्री** (Docker Hub, npm रजिस्ट्री, कोई निजी रजिस्ट्री) एक गोदाम है जहाँ हर डिब्बे (आर्टिफ़ैक्ट) पर एक साफ़ लेबल (वर्ज़न) होता है। जहाँ भी डिप्लॉय करना हो, वह बस ठीक उसी लेबल वाला डिब्बा मंगाता है — कोई अंदाज़ा नहीं लगाना पड़ता।

**Quiz:** हर बिल्ड आर्टिफ़ैक्ट को अपरिवर्तनीय वर्ज़न पहचानकर्ता क्यों मिलना चाहिए?

- [ ] इससे बिल्ड तेज़ चलता है
- [ ] इससे रजिस्ट्री की ज़रूरत खत्म हो जाती है
- [ ] इससे images छोटी होती हैं
- [x] इससे आप ठीक-ठीक जान सकते हैं क्या चल रहा है और बाद में वही बिल्ड दोबारा डिप्लॉय कर सकते हैं

*Answer:* इससे आप ठीक-ठीक जान सकते हैं क्या चल रहा है और बाद में वही बिल्ड दोबारा डिप्लॉय कर सकते हैं. एक स्थिर, अनोखा पहचानकर्ता 'कोई बिल्ड' को एक ट्रेस-योग्य, दोबारा बनाने योग्य आर्टिफ़ैक्ट में बदल देता है जिसकी ओर आप इशारा कर सकते हैं और दोबारा डिप्लॉय कर सकते हैं।
