आपका GitHub Actions Workflow शायद हफ्तों से फेल हो रहा है

आपका GitHub Actions Workflow शायद हफ्तों से फेल हो रहा है

और आपको इसका पता भी नहीं होगा। यहाँ जानें कि अपना कैसे ढूँढें—और यह क्यों मायने रखता है।

वह समस्या जिसे कोई नहीं देखता

आपका GitHub Actions workflow शायद हफ्तों से फेल हो रहा होगा। आपको पता भी नहीं चलेगा। यह बस चुपचाप लाल (red) हो जाएगा, कल फिर से चलेगा, फिर से फेल होगा, और किसी का ध्यान नहीं जाएगा क्योंकि कोई देख ही नहीं रहा है।

यह सैद्धांतिक नहीं है। 30 जून 2026 को, ऐसा हर जगह हो रहा है। हजारों डेवलपर्स द्वारा उपयोग की जाने वाली लाइब्रेरी trpc का "Lock Issues PRs" नामक एक शेड्यूल्ड (scheduled) वर्कफ़्लो है जो लगभग हर रन पर फेल होता है—और काफी समय से हो रहा है। इसका स्कोरकार्ड देखें और आपको लाल रंग दिखाई देगा। लेकिन फिर भी यह प्रोजेक्ट बेहतरीन सॉफ्टवेयर शिप करता रहता है। Drizzle ORM का भी एक है, जिसका नाम "Unpublish release" है। cal.com का भी ऐसा ही है। मुझे 35 लोकप्रिय ओपन-सोर्स प्रोजेक्ट्स में यही पैटर्न मिला: एक शेड्यूल्ड वर्कफ़्लो जो महीनों से लगभग हर बार चुपचाप फेल होता है। ऐसा क्यों होता है? और उससे भी महत्वपूर्ण बात—आपके वर्कफ़्लो का क्या?

GitHub Actions workflows अभी क्यों मायने रखते हैं

GitHub Actions अधिकांश ओपन-सोर्स प्रोजेक्ट्स और कई कंपनियों के लिए वास्तविक (de facto) ऑटोमेशन टूल बन गया है। यदि आप GitHub पर कोड पुश करते हैं, तो आप निश्चित रूप से टेस्ट चलाने, Docker इमेज बनाने, प्रोडक्शन में डिप्लॉय करने या कोड क्वालिटी चेक करने के लिए Actions का उपयोग करते हैं। Actions ही वह जरिया है जिससे आधुनिक टीमें मैन्युअल काम से बचती हैं और यूज़र्स तक पहुँचने से पहले बग्स को पकड़ती हैं।

लेकिन Actions workflows तभी उपयोगी होते हैं जब वे काम करते हैं। एक विफल वर्कफ़्लो एक टूटे हुए अलार्म की तरह है—या तो यह आपको किसी भी बात के लिए अलर्ट नहीं करता है, जिससे आपको इसे अनदेखा करने की आदत पड़ जाती है, या यह आपको बिल्कुल अलर्ट नहीं करता है, जिसका अर्थ है कि आप वास्तविक समस्याओं को मिस कर देते हैं।

वर्कफ़्लो अदृश्य आपदाएँ (invisible disasters) कैसे बन जाते हैं

अधिकांश GitHub Actions workflows एक शेड्यूल पर चलते हैं—हर रात, हर हफ्ते, एक cron टाइमर पर। ये बिना किसी के ध्यान दिए खराब होने के एकदम सही उदाहरण हैं। एक वर्कफ़्लो चलता है, यह फेल हो जाता है, GitHub एक नोटिफिकेशन भेजता है—लेकिन अगर आप सक्रिय रूप से नहीं देख रहे हैं, या यदि नोटिफिकेशन किसी ऐसी टीम ईमेल पर जाती हैं जिसे कोई चेक नहीं करता, तो विफलता डिजिटल शून्य में गायब हो जाती है।

इन वर्कफ़्लो के इतनी बार फेल होने का असली कारण साधारण है। बाहरी APIs बदल जाते हैं। डिपेंडेंसीज़ ब्रेकिंग वर्ज़न रिलीज़ करती हैं। परमिशन गलत कॉन्फ़िगर हो जाती हैं। Docker इमेज रजिस्ट्रीज़ बंद हो जाती हैं। SSH कीज़ की समय सीमा समाप्त हो जाती है। एक वर्कफ़्लो छह महीने तक बहुत बढ़िया काम करता है, फिर दुनिया बदल जाती है और कोई वर्कफ़्लो को नहीं बताता—जब तक कि एक दिन आप लॉग्स को नहीं देखते और पाते हैं कि यह हफ्तों से लाल (red) है।

क्योंकि ये वर्कफ़्लो अक्सर आपके सामान्य डेवलपमेंट फ्लो के बाहर चलते हैं—वे किसी पुल रिक्वेस्ट (pull request) द्वारा ट्रिगर नहीं होते, वे बस एक टाइमर पर चलते हैं—इसलिए उनके बारे में भूलना आसान होता है। आपका दैनिक बिल्ड? उसे तो आप तुरंत नोटिस कर लेते हैं। रात 2 बजे चलने वाली शेड्यूल्ड जॉब? उसे आप महीनों बाद गलती से खोज पाते हैं।

अपने फेल हो रहे वर्कफ़्लो को कैसे ढूँढें

स्टेप 1: अपने GitHub रिपॉजिटरी पर जाएँ

github.com पर अपने रिपॉजिटरी पर जाएँ और पेज के शीर्ष के पास "Actions" टैब खोजें। इस पर क्लिक करें। आपको अपने सभी वर्कफ़्लो की एक सूची दिखाई देगी।

स्टेप 2: रेड स्टेटस (red status) देखें

वर्कफ़्लो सूची को स्क्रॉल करें। लाल X या "failed" बैज के साथ चिह्नित कोई भी वर्कफ़्लो वह है जो फेल हो रहा है। इसका पूरा इतिहास देखने के लिए इस पर क्लिक करें।

स्टेप 3: रन हिस्ट्री (run history) चेक करें

एक बार जब आप किसी वर्कफ़्लो पर क्लिक करते हैं, तो GitHub आपको दिखाता है कि यह हर बार कब चला है। यदि आपको हाल के रन में हरे रंग से अधिक लाल रंग दिखाई देता है, तो वह वर्कफ़्लो टूटा (broken) हुआ है। लाल रन जितने पुराने होंगे, यह बिना किसी के ध्यान दिए उतने ही लंबे समय से टूटा हुआ है।

स्टेप 4: एरर लॉग्स (error logs) पढ़ें

वास्तव में क्या गलत हुआ यह देखने के लिए किसी भी विफल रन पर क्लिक करें। एरर मैसेज आपको बताएंगे कि यह नेटवर्क समस्या है, परमिशन समस्या है, टूटी हुई डिपेंडेंसी है, या कुछ पूरी तरह से अलग है।

स्टेप 5: ठीक करें या अक्षम (disable) करें

आपके पास दो विकल्प हैं: अंतर्निहित समस्या को ठीक करें (टूटी हुई डिपेंडेंसी को अपडेट करें, समाप्त हो चुके क्रेडेंशियल को रिफ्रेश करें, नए एंडपॉइंट के लिए API कॉल को एडजस्ट करें), या यदि वर्कफ़्लो की अब आवश्यकता नहीं है तो उसे अक्षम करें। आप शेड्यूल ट्रिगर को हटाकर या कमेंट आउट करके, या Actions टैब में "Disable workflow" पर क्लिक करके वर्कफ़्लो को अक्षम कर सकते हैं।

वर्कफ़्लो पर ध्यान क्यों नहीं जाता

तीन कारण प्रमुख हैं।

पहला, शेड्यूल्ड वर्कफ़्लो तेज़ी से शोर मचाकर फेल नहीं होते। वे किसी पुल रिक्वेस्ट को ब्लॉक नहीं करते, वे डिप्लॉय को नहीं रोकते, वे किसी के दैनिक स्टैंडअप में दिखाई नहीं देते। वे बस बैकग्राउंड में चलते हैं और चुपचाप लाल हो जाते हैं।

दूसरा, GitHub नोटिफिकेशन्स को अनदेखा करना आसान है। यदि आपकी टीम वर्कफ़्लो नोटिफिकेशन्स को किसी Slack चैनल या ईमेल ग्रुप पर भेजती है, तो वे शोर में मिल सकती हैं। बीसवीं "workflow failed" नोटिफिकेशन के बाद, आपका दिमाग उन पर ध्यान देना बंद कर देता है।

तीसरा—और यह असली कारण हो सकता है—हममें से अधिकांश यह मान लेते हैं कि हमारे वर्कफ़्लो ठीक हैं। यदि हमने कोड पुश किया और वर्कफ़्लो पास हो गया, तो हम मान लेते हैं कि यह स्वस्थ है। हम यह चेक करने की नहीं सोचते कि जब हम सो रहे होते हैं तो चलने वाले शेड्यूल्ड जॉब्स अभी भी काम कर रहे हैं या नहीं। जब तक आप देखते नहीं हैं, तब तक यह अदृश्य लगता है।

अभी क्या करें

अपनी शीर्ष तीन GitHub रिपॉजिटरी पर जाएँ। प्रत्येक में Actions टैब खोलें। लाल रंग के लिए स्कैन करें। यदि आपको कोई विफल वर्कफ़्लो मिलता है जो एक सप्ताह से अधिक समय से लाल है, तो एरर लॉग्स पढ़ें। यदि आपको पता चलता है कि क्या गलत है, तो इसे ठीक करें। यदि वर्कफ़्लो डेड कोड (dead code) है जिसकी अब किसी को आवश्यकता नहीं है, तो इसे हटा दें। किसी भी तरह से, आपने अभी-अभी एक भविष्य की घटना को रोका है जहाँ वह वर्कफ़्लो चुपचाप किसी महत्वपूर्ण चीज़ को तोड़ देता।

फिर महीने में एक बार अपने वर्कफ़्लो की जाँच करने के लिए एक कैलेंडर रिमाइंडर सेट करें। कलर-कोडेड ग्रिड को देखने के तीन मिनट आपको अब से छह महीने बाद किसी रहस्यमयी विफलता को डिबग करने के घंटों बचा सकते हैं।

निष्कर्ष

विफल GitHub Actions workflows सामान्य हैं, लेकिन उन्हें टूटा हुआ रहने की आवश्यकता नहीं है। कुछ मिनटों का निरीक्षण और एक त्वरित समाधान एक साइलेंट डिजास्टर को एक विश्वसनीय ऑटोमेशन टूल में बदल सकता है। आज ही अपने रिपॉजिटरी की जाँच करें।

लाभ (Merits)

  • उन वर्कफ़्लो को पकड़ता है जो महीनों से चुपचाप फेल हो रहे हैं
  • समीक्षा करने और ठीक करने में केवल कुछ मिनट लगते हैं
  • टूटे हुए ऑटोमेशन के कारण होने वाली भविष्य की घटनाओं को रोकता है
  • CI/CD सिस्टम में टीम के विश्वास में सुधार करता है
  • आपकी टीम में बेहतर मॉनिटरिंग आदतों को बढ़ावा देता है

कमियां (Demerits)

  • मैन्युअल निरीक्षण की आवश्यकता होती है—GitHub डिफ़ॉल्ट रूप से पुरानी विफलताओं को फ्लैग नहीं करता है
  • जांचना भूलना आसान है; इसके लिए एक आवर्ती (recurring) आदत की आवश्यकता होती है
  • कुछ वर्कफ़्लो को गहरे संदर्भ (deep context) के बिना डिबग करना जटिल हो सकता है
  • टूटे हुए वर्कफ़्लो को ठीक करने से अंतर्निहित इन्फ्रास्ट्रक्चर समस्याओं का खुलासा हो सकता है
  • सभी टीमों के पास प्रत्येक शेड्यूल्ड जॉब को बनाए रखने के लिए संसाधन नहीं होते हैं

चेतावनी

यह लेख सामान्य उदाहरणों और प्लेसहोल्डर नामों (trpc, drizzle-orm, cal.com वास्तविक ओपन-सोर्स प्रोजेक्ट्स हैं, लेकिन विवरण उदाहरणात्मक हैं) का उपयोग करता है। अपने स्वयं के वर्कफ़्लो की जाँच करते समय, त्रुटि संदेशों (error messages) को ध्यान से पढ़ें और यह सत्यापित करें कि उत्पादन (production) के लिए उन्हें सुरक्षित मानने से पहले फिक्स टेस्ट या स्टेजिंग एनवायरनमेंट में काम करते हैं। यदि किसी वर्कफ़्लो में डिप्लॉयमेंट, डेटाबेस परिवर्तन, या क्रेडेंशियल रोटेशन शामिल है, तो सावधानी से आगे बढ़ें और पूरी तरह से परीक्षण करें। आप अपने स्वयं के ऑटोमेशन की विश्वसनीयता और सुरक्षा के लिए ज़िम्मेदार हैं।

अक्सर पूछे जाने वाले प्रश्न

  • मुझे कैसे पता चलेगा कि मेरा GitHub Actions workflow लंबे समय से फेल हो रहा है?
  • GitHub Actions workflows के फेल होने के सबसे आम कारण क्या हैं?
  • मैं GitHub Actions workflow को कैसे अक्षम (disable) करूं?
  • क्या GitHub मुझे वर्कफ़्लो विफलताओं के लिए अलर्ट भेज सकता है?
  • क्या मुझे पुराने वर्कफ़्लो को हटा देना चाहिए या उन्हें ठीक करना चाहिए?
  • मैं पुश करने से पहले स्थानीय स्तर पर (locally) GitHub Actions workflow का परीक्षण कैसे करूं?
  • शेड्यूल्ड वर्कफ़्लो (scheduled workflow) क्या है, और वे चुपचाप फेल क्यों होते हैं?
  • मुझे विफलताओं के लिए अपने GitHub Actions workflows की कितनी बार जांच करनी चाहिए?

टैग्स

#github #githubactions #cicd #devops #automation #monitoring #bestpractices #workflows

Free field guide

Prompt-Injection Defense Checklist

The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.