Title: GitHub Actions പുനഃസ്ഥാപിച്ചു, എന്നാൽ മാനുവൽ ഫിക്സുകൾ ആവശ്യമാണ്

ഓഗസ്റ്റ് 7-ന് 02:04 UTC-ക്ക് GitHub Actions വീണ്ടും പ്രവർത്തനസജ്ജമായി. തടസ്സമുണ്ടായ സമയത്ത് നടന്ന push, pull-request ഇവന്റുകൾ പ്രവർത്തിച്ചില്ല, അതിനാൽ ഡെവലപ്പർമാർ ഇവ നേരിട്ട് (manually) വീണ്ടും പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്.

സ്റ്റാറ്റസ് പേജ് ഇപ്പോൾ പച്ച നിറത്തിൽ കാണിക്കുന്നുണ്ടെങ്കിലും, തടസ്സമുണ്ടായ സമയത്ത് ആരംഭിക്കേണ്ടിയിരുന്ന ഏതൊരു വർക്ക്ഫ്ലോയും (workflow) പ്രവർത്തിച്ചിട്ടില്ല. വിട്ടുപോയ ട്രിഗറുകൾ (triggers) GitHub-ന് സ്വയം പ്രവർത്തിപ്പിക്കാൻ കഴിയില്ല എന്നതിനാൽ, ടീമുകൾ പുതിയൊരു commit പുഷ് ചെയ്യുകയോ, pull request അപ്‌ഡേറ്റ് ചെയ്യുകയോ, അല്ലെങ്കിൽ UI-ൽ Re-run jobs ക്ലിക്ക് ചെയ്യുകയോ വേണം. ഓപ്പൺ സോഴ്‌സ് Actions Runner Controller ഉപയോഗിക്കുന്നവർ റണ്ണർ പോഡുകൾ (runner pods) പ്രവർത്തനരഹിതമായി കിടക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കേണ്ടതുണ്ട്.

എന്താണ് സംഭവിച്ചത്, എന്തുകൊണ്ട് ഇത് പ്രധാനമാണ്

ദശലക്ഷക്കണക്കിന് റെപ്പോസിറ്ററികളുടെ (repos) CI പൈപ്പ്‌ലൈനുകൾ നിയന്ത്രിക്കുന്നത് GitHub Actions ആണ്. ഇത് തടസ്സപ്പെടുമ്പോൾ, കോഡ് മാറ്റങ്ങൾ മാറ്റിവെക്കപ്പെടുന്നു, ടെസ്റ്റ് സ്യൂട്ടുകൾ പ്രവർത്തിക്കുന്നില്ല, ഡെപ്ലോയ്‌മെന്റുകൾ വൈകുന്നു. ഓഗസ്റ്റ് 7-ന്, ഏറ്റവും സാധാരണമായ രണ്ട് CI ട്രിഗറുകളായ push ഇവന്റുകളും (പുതിയ commits), pull-request ഇവന്റുകളും (review updates) പ്രോസസ്സ് ചെയ്യുന്നത് സേവനം നിർത്തിവെച്ചു.

നിങ്ങളുടെ പൈപ്പ്‌ലൈനുകൾ എങ്ങനെ വീണ്ടെടുക്കാം

  1. പുതിയൊരു commit പുഷ് ചെയ്യുക – ബ്രാഞ്ചിൽ വരുത്തുന്ന ഏതൊരു മാറ്റവും push ട്രിഗർ വീണ്ടും പ്രവർത്തിപ്പിക്കും.
  2. Pull request അപ്‌ഡേറ്റ് ചെയ്യുക – ഒരു കമന്റ് ചേർക്കുകയോ, ടൈറ്റിൽ മാറ്റുകയോ, അല്ലെങ്കിൽ കൂടുതൽ commits പുഷ് ചെയ്യുകയോ ചെയ്യുന്നതിലൂടെ PR വർക്ക്ഫ്ലോ വീണ്ടും പ്രവർത്തിപ്പിക്കാം.
  3. വർക്ക്ഫ്ലോ മാനുവലായി റൺ ചെയ്യുക – പരാജയപ്പെട്ട ഓരോ റണ്ണിനും വേണ്ടി Actions UI-ൽ ഇപ്പോൾ “Re-run jobs” എന്ന ബട്ടൺ കാണാം.

നിങ്ങൾ Actions Runner Controller വഴി self-hosted runners ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, റണ്ണർ പോഡുകൾ പരിശോധിക്കുക. സേവനം പുനഃസ്ഥാപിച്ച ശേഷവും ചിലത് idle ആയി തുടരാം; അവ റീസ്റ്റാർട്ട് ചെയ്യുകയോ വീണ്ടും ഡെപ്ലോയ് ചെയ്യുകയോ ചെയ്യുക.

ടീമുകൾ നേരിടുന്ന വെല്ലുവിളികൾ

  • ഉൽപ്പാദനക്ഷമത കുറയുന്നു (Productivity loss) – സാധാരണ മിനിറ്റുകൾക്കുള്ളിൽ ലഭിക്കേണ്ട ഫീഡ്‌ബാക്കിനായി ഡെവലപ്പർമാർ കാത്തിരിക്കേണ്ടി വരുന്നു.
  • റിലീസ് വൈകുന്നു (Release delays) – ഒരു റിലീസിനെ നിയന്ത്രിക്കുന്ന പൈപ്പ്‌ലൈനുകൾ തടസ്സപ്പെടുന്നത് ഷിപ്പിംഗ് തീയതികൾ വൈകാൻ കാരണമാകും.
  • പ്രവർത്തനഭാരം കൂടുന്നു (Operational overhead) – ടീമുകൾക്ക് അടുത്ത കാലത്തു നടന്ന റണ്ണുകൾ പരിശോധിക്കാനും, പിഴവുകൾ കണ്ടെത്താനും, മുകളിൽ പറഞ്ഞ മാനുവൽ ഘട്ടങ്ങൾ ചെയ്യാനും സമയം ചെലവഴിക്കേണ്ടി വരുന്നു, ഇത് പുതിയ ഫീച്ചറുകൾ വികസിപ്പിക്കുന്നതിനെ ബാധിക്കുന്നു.

ചുരുക്കത്തിൽ: വിശ്വസനീയമായ CI സേവനങ്ങളിൽ പോലും ജോബുകൾ നഷ്ടപ്പെടാം എന്നതും, ഓട്ടോമാറ്റിക് റീപ്ലേ ഉറപ്പില്ലാത്ത കാര്യമാണെന്നതും ഈ തടസ്സം കാണിച്ചുതരുന്നു. നിങ്ങളുടെ ഇൻസിഡന്റ്-റെസ്പോൺസ് പ്ലേബുക്കുകളിൽ (incident-response playbooks) മാനുവൽ റിക്കവറി ഘട്ടങ്ങൾ ഉൾപ്പെടുത്തുക, കൂടാതെ കൂടുതൽ കരുത്തുറ്റ ഇവന്റ് ഹാൻഡ്‌ലിംഗിനായി GitHub നടത്തുന്ന അടുത്ത നീക്കങ്ങൾ ശ്രദ്ധിക്കുക.