वह हर push पर चलती है, दस मिनट के अंदर नतीजा देती है, और फेल होने पर merge रोक देती है। stages सबसे सस्ते से शुरू कीजिए: lint और type checks, unit tests, फिर containers में असली dependencies के खिलाफ integration tests, फिर एक build artifact जिसे आप हर environment के लिए दोबारा बनाने के बजाय आगे बढ़ाते हैं। इसे deterministic रखिए, आंख मूंदकर retry करने के बजाय flaky tests को अलग कीजिए, और वही checks लोकल में भी चलाने लायक बनाइए।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर जानना चाहते हैं कि आप CI को सुरक्षा जाल मानते हैं या खानापूरी। संकेत हैं रफ्तार, क्योंकि जिस pipeline का कोई इंतजार नहीं करता उसे लोग बाईपास कर देते हैं, जल्दी फेल होने के लिए stages का क्रम, artifact एक बार बनाकर आगे बढ़ाना, और flaky tests पर साफ राय। यह कहना कि CI लोकल में भी दोहरी जा सके, दिखाता है कि आपने हरी pipeline और लाल लैपटॉप वाली तकलीफ झेली है।
अपना जवाब कैसे स्ट्रक्चर करें
- फीडबैक लूप और समय के बजट से शुरुआत कीजिए।
- stages को सबसे सस्ते से सबसे महंगे के क्रम में रखिए।
- एक बार build कीजिए और वही artifact आगे बढ़ाइए।
- flaky tests पर साफ नीति बताइए।
उदाहरण जवाब
पहला गुण रफ्तार है, क्योंकि चालीस मिनट लेने वाली pipeline वह है जिसके इर्द गिर्द लोग रास्ता निकाल लेते हैं। मैं चाहता हूं कि lint और type checks एक मिनट के अंदर फेल हों, unit tests कुछ मिनट में, और पूरी चीज दस मिनट से नीचे रहे। तो stages सबसे सस्ते से शुरू होते हैं: static checks, unit tests, फिर mocks के बजाय containers में असली Postgres और Redis के खिलाफ integration tests, क्योंकि जिन बग की मुझे परवाह है वे सीमा पर ही रहते हैं। फिर वह एक artifact बनाती है, commit sha से tag की गई container image, और उसके बाद हर environment वही image deploy करता है। हर environment के लिए दोबारा build करने का मतलब है कि जो आपने टेस्ट किया वह वह नहीं है जो आपने शिप किया। flaky tests पर मैं सख्त हूं: अपने आप retry करना असली race छिपाने का तरीका है, तो flaky test अलग कर दिया जाता है और उसी हफ्ते किसी को उसे ठीक करने की जिम्मेदारी मिलती है। और मैं चाहता हूं कि वही commands लोकल में चलें, आम तौर पर किसी makefile के पीछे, क्योंकि commits push करके देखना कि CI क्या कहती है, दोपहर बिताने का बेहद दुखी तरीका है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- जो suite तीस मिनट लेती है उसे आप कैसे तेज करेंगे?
- कौन से checks आप main पर चलाएंगे लेकिन pull requests पर नहीं?
- CI में secrets आप कैसे संभालते हैं?
सॉफ्टवेयर इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें