လုပ်ဆောင်ချက်ရလဒ် ၂ အမှားကုဒ် ၀ - အမှား- gradle task assembledebug သည် exit code ၁ ဖြင့် မအောင်မြင်ပါ။

လုပ်ဆောင်ချက် ရလဒ် ၂ အမှားကုဒ် ၀ လက်မ CI/CD: အဲဒါက ဘာကို ဆိုလိုတာလဲ။

မာတိကာ

မဖြစ်မနေဖတ်သင့်သောပို့စ်များ

စိတ်ဝင်စားဖွယ်ကောင်းသော နောက်ဆုံးပို့စ်များ

အဖြစ်များသော အမှားကုဒ်များကို ကုဒ်ဖြည်ခြင်း CI/CD Pipelines: လုပ်ဆောင်ချက် ရလဒ် ၂ အမှားကုဒ် ၀

ဘယ်အချိန်မှာသင့်ရဲ့ CI/CD pipeline Function Result 2 Error Code 0, exit code -1, သို့မဟုတ် error: gradle task assembleDebug failed with exit code 1 ကဲ့သို့သော မက်ဆေ့ချ်များကို ပြသသည်၊ ၎င်းသည် ရိုးရှင်းသော build hiccup ထက် ပိုမိုနက်ရှိုင်းသော တစ်စုံတစ်ခု မှားယွင်းနေကြောင်း လက္ခဏာတစ်ရပ် ဖြစ်လေ့ရှိသည်။ ဤကုဒ်များသည် ဖုံးကွယ်ထားသော build failure များ၊ misconfiguration များ သို့မဟုတ် "အောင်မြင်သော" ဖြန့်ကျက်မှုများအဖြစ် ချော်ထွက်သွားသော မလုံခြုံသော artifacts များကိုပင် ဖော်ထုတ်နိုင်သည်၊ အထူးသဖြင့် pipelineထွက်ပေါက်အချက်ပြမှုများကို မှားယွင်းစွာ အဓိပ္ပာယ်ဖွင့်ဆိုမိခြင်း။ ဤအမှားတစ်ခုစီ၏ အဓိပ္ပာယ်ကို နားလည်ခြင်းသည် သင်၏တည်ဆောက်မှုများ တိကျမှန်ကန်စေရန်၊ သင်၏ အလိုအလျောက်လုပ်ဆောင်မှုကို ယုံကြည်စိတ်ချရစေရန်နှင့် သင်၏ ဆော့ဖ်ဝဲလ်ထောက်ပံ့ရေးကွင်းဆက်ကို လုံခြုံစေရန်အတွက် မရှိမဖြစ်လိုအပ်ပါသည်။ CI/CD pipelineအလုပ်တစ်ခု အောင်မြင်သည်ဖြစ်စေ မအောင်မြင်သည်ဖြစ်စေ ဆုံးဖြတ်ရန် ထွက်ပေါက်ကုဒ်များကို အားကိုးကြသည်။ သို့သော် ကုဒ်အားလုံးသည် ထင်ရှားသည်မဟုတ်၊ developer အများအပြားသည် အောက်ပါကဲ့သို့သော လျှို့ဝှက်ဆန်းကြယ်သော မက်ဆေ့ချ်များကို ကြုံတွေ့ဖူးကြသည်။

  • ဒီ function ကို ပုံမှန်အားဖြင့် အတွင်းပိုင်းတွင် “function 2 ပြန်ပေးသည်” ကို ညွှန်ပြသော်လည်း၊ pipeline ၎င်းကို မှားယွင်းစွာ ဆက်ဆံသည် 0 (အောင်မြင်မှု)။ ဒါက ကျရှုံးမှုကို ဖုံးကွယ်ထားတယ်။
  • အမှား: Gradle task assembleDebug သည် exit code 1 ဖြင့် မအောင်မြင်ခဲ့ပါ။Gradle မှာ compilation ဒါမှမဟုတ် build error တစ်ခုခုကို တွေ့ရှိခဲ့ပေမယ့် တစ်ခါတစ်ရံမှာ CI/CD ထုပ်ပိုးသူများက ၎င်းကို မှားယွင်းစွာ အဓိပ္ပာယ်ဖွင့်ဆိုကြသည်
  • ထွက်ပေါက်ကုဒ် -၁ မကြာခဏဆိုသလို clean shutdown မလုပ်ဘဲ script သို့မဟုတ် runtime crash ကို ညွှန်ပြနေပါတယ်

ဖြစ်ပျက်ခဲ့တဲ့အရာနဲ့ ဒီကွဲလွဲမှုတွေက CI/CD စနစ်အစီရင်ခံစာများသည် အန္တရာယ်များပါသည်။ မလုံခြုံသော ရှေးဟောင်းပစ္စည်းများ "အောင်မြင်သော" တည်ဆောက်မှုများအဖြစ် ချော်ထွက်သွားနိုင်သည်။

တည်ဆောက်မှုတစ်ခု အောင်မြင်သော်လည်း အထွက် ပျက်နေသည့်အခါ သို့မဟုတ် မလုံခြုံသောအခါ- လုပ်ဆောင်ချက် ရလဒ် ၂ အမှားကုဒ် ၀ ကို နားလည်ခြင်း

တခါတလေ pipelines သည် ပျက်စီးနေသော သို့မဟုတ် မလုံခြုံသော ရှေးဟောင်းပစ္စည်းများကို ပို့ဆောင်နေစဉ် အစိမ်းရောင် အမှန်ခြစ်များ ပြသသည်။ ၎င်းသည် Function Result 2 Error Code 0 သို့မဟုတ် exit code -1 ကို မှားယွင်းစွာ အဓိပ္ပာယ်ဖွင့်ဆိုမိသည့်အခါ ဖြစ်ပေါ်သည်။

ဥပမာ- အောင်မြင်မှုတည်ဆောက်နိုင်သော်လည်း ရှေးဟောင်းပစ္စည်းပျက်စီးနေသည်

ဒီမှာ, ကျောင်းသူ artifact သည် လက်မှတ်မထိုးရသေးသော်လည်း အောင်မြင်မှုရှိကြောင်း သတင်းပို့သည်။ ထို လက်မှတ်မထိုးရသေးသော APK ကို ပြန်လည်ထုပ်ပိုးခြင်း၊ ပြုပြင်ခြင်းနှင့် မသိမသာ ပြန်လည်ဖြန့်ကျက်ခြင်းတို့ကို ပြုလုပ်နိုင်သည်။ In pipelines၊ လျစ်လျူရှုခြင်း အမှား- gradle task assembleDebug သည် exit code 1 ဖြင့် မအောင်မြင်ပါ သို့မဟုတ် Function Result 2 ကို မှားယွင်းစွာ အမျိုးအစားခွဲခြားမိပါသည်။ အမှားကုဒ် 0 သည် အောင်မြင်မှု၏ မှားယွင်းသော လုံခြုံရေးခံစားချက်ကို ဖန်တီးပေးပါသည်။

မှားယွင်းစွာ configure လုပ်ထားသော Tasks များနှင့် Third-Party Script များမှ တိတ်ဆိတ်သော ကျရှုံးမှုများ

တိတ်ဆိတ်သော ပျက်ကွက်မှုများသည် ပို၍ပင်ဆိုးရွားပါသည်။ မှားယွင်းစွာ configure လုပ်ထားသော script များနှင့် dependencies များသည် တစ်ခါတစ်ရံတွင် တကယ့်အမှားများကို ဖုံးကွယ်ထားသော်လည်း ပြန်ပေါ်လာတတ်ပါသည်။ 0.

လက်တွေ့ဖြစ်ရပ်- Node script မှ အမှားများကို နှိမ်နင်းခြင်း

ဒါက အာမခံပါတယ် pipeline build မအောင်မြင်ရင်တောင် အောင်မြင်မှုကို အမြဲသတင်းပို့ပါတယ်။ Gradle မှာ plugin တွေ ဒါမှမဟုတ် task တွေကို override လုပ်တဲ့အခါလည်း အလားတူဖြစ်တတ်ပါတယ်။ ထွက်ပေါက်ကုဒ် -၁ သို့ 0. ဤသည်ကိုမည်သို့ဖြစ်ပါသည် pipelines သည် ပျက်စီးနေသော တည်ဆောက်မှုများကို တိတ်တဆိတ်လက်ခံပြီး အားနည်းချက်ရှိသော သို့မဟုတ် မပြည့်စုံသော ဖြန့်ကျက်မှုများဆီသို့ ဦးတည်စေသည်။

မှားယွင်းသော အပြုသဘောဆောင်သော လက္ခဏာများကို ကာကွယ်ခြင်း CI/CD ပိုကောင်းတဲ့ အချက်ပြမှု ကိုင်တွယ်မှုနဲ့

မှားယွင်းသော အပြုသဘောဆောင်မှုများကို ရှောင်ရှားရန် အဓိကသော့ချက်မှာ fail-fast logic နှင့် artifact validation တို့ဖြစ်သည်။

အမှားအယွင်းများကို လုံခြုံစွာကိုင်တွယ်ဖြေရှင်းရန်အတွက် အကောင်းဆုံးလုပ်ဆောင်မှုများ pipelines:

  • ပျက်-မြန်: သေချာပါစေ။ pipeline ပထမဆုံးထွက်ပေါက်ကုဒ် -1 သို့မဟုတ် အမှား- gradle task assemble တွင် Debug သည် ထွက်ပေါက်ကုဒ် 1 ဖြင့် မအောင်မြင်ပါ။
  • ရှေးဟောင်းပစ္စည်းများကို အတည်ပြုပါ"အောင်မြင်မှု" မက်ဆေ့ချ်များကို မယုံပါနှင့်။ hash သို့မဟုတ် signature verification ဖြင့် build output များကို စစ်ဆေးပါ။
  • Harden script များ: အောက်ပါကဲ့သို့သော အမှားအယွင်းအားလုံးကို နှိမ်နင်းခြင်းကို ဖယ်ရှားပါ လုပ်ငန်းစဉ်။ ထွက်ပေါက်(0)
  • တိကျသော အခြေအနေကုဒ်များကို အတင်းအကြပ်လုပ်ဆောင်ပါ: Script များ ပြန်ပေါ်လာသင့်သည် 0 ပြီးပြည့်စုံပြီး အတည်ပြုထားသော အောင်မြင်မှုအတွက်သာ

ဆော့ဖ်ဝဲရေးသားသူ စစ်ဆေးရမည့်စာရင်း အမြန်

  • အတွက် စိတ်ကြိုက် script အားလုံးကို ပြန်လည်သုံးသပ်ပါ လုပ်ငန်းစဉ်။ ထွက်ပေါက်(0) အလှဲအသုံးပွု
  • အရင်းခံအကြောင်းရင်းကို အတည်ပြုပြီးသည်အထိ Function Result 2 Error Code 0 ကို သံသယဖြစ်ဖွယ်အဖြစ် သတ်မှတ်ပါ။
  • လက်မှတ်မထိုးထားသော သို့မဟုတ် အတည်မပြုရသေးသော ရှေးဟောင်းပစ္စည်းများကို ကြော်ငြာခြင်းမပြုရန် ပိတ်ဆို့ပါ
  • ဖြန့်ကျက်ခြင်းမပြုမီ hash/signature validation ကိုထည့်ပါ
  • ဝှက်ထားသော မှတ်တမ်းများကို စောင့်ကြည့်ပါ ထွက်ပေါက်ကုဒ် -၁ ထုပ်ပိုးမှုဖြင့် ဖုံးကွယ်ထားသော အချက်ပြမှုများ

ပျက်ကွက်ခြင်းမရှိဘဲ၊ pipelineတည်ငြိမ်မှုဆိုတဲ့ အထင်အမြင်လွဲမှားမှုအောက်မှာ သင်္ဘောဟာ မလုံခြုံတဲ့ ရှေးဟောင်းပစ္စည်းတွေကို မြင်ရတယ်။

လုပ်ဆောင်ချက် ရလဒ် ၂ အမှားကုဒ် ၀ နှင့် လုံခြုံသော အချက်ပြမှု ကိုင်တွယ်ခြင်း Pipelines

အစိမ်းရောင် check-in တိုင်း မဟုတ်ပါဘူး CI/CD သင့်ကုဒ်သည် လုံခြုံသည်ဟု ဆိုလိုသည်။ Function Result 2 Error Code 0၊ exit code -1 နှင့် error: gradle task assembleDebug failed with exit code 1 ကဲ့သို့သော မှားယွင်းစွာ အဓိပ္ပာယ်ဖွင့်ဆိုထားသော အချက်ပြမှုများသည် တိုက်ခိုက်သူများ အသုံးချနိုင်သည့် မမြင်ရသောနေရာများကို ဖန်တီးပေးသည်။ သော့ယူရန်

  • လုပ်ဆောင်ချက်ကို အောင်မြင်မှုအဖြစ် မဟုတ်ဘဲ မှားယွင်းစွာဖွဲ့စည်းမှုအဖြစ် သဘောထားပါ။
  • ထွက်ပေါက်ကုဒ် -၁ တိုင်းကို စုံစမ်းစစ်ဆေးပါ။ ၎င်းသည် ပျက်စီးနေသော သို့မဟုတ် မလုံခြုံသော တည်ဆောက်မှုတစ်ခုကို ညွှန်ပြသည်
  • gradle task assembleDebug failed with exit code 1 ဆိုတဲ့ error ပေါ်လာရင် artifacts တွေကို ဘယ်တော့မှ မပို့ပါနဲ့။
  • မအောင်မြင်သောနည်းလမ်းဖြင့် အကောင်အထည်ဖော်ပါ pipelineartifact validation (hashes၊ signatures) ပါသော s များ
  • DevSecOps လုပ်ငန်းစဉ်များကို ကဲ့သို့သော tools များနှင့် ပေါင်းစပ်ပါ။ ဆိုက်ဂျီနီ ဖုံးကွယ်ထားသော အန္တရာယ်များကို ရှာဖွေတွေ့ရှိပြီး ပိတ်ဆို့ရန်။

In CI/CDထွက်ပေါက်ကုဒ်များသည် လုံခြုံရေးအချက်ပြမှုများဖြစ်သည်။ ၎င်းတို့ကို ပေါ့ဆစွာကိုင်တွယ်ပါက ထုတ်လုပ်မှုတွင် မလုံခြုံသောတည်ဆောက်မှုများဖြစ်နိုင်ခြေရှိသည်။ ၎င်းတို့ကို မှန်ကန်စွာကိုင်တွယ်ခြင်းဖြင့် သင်၏ဆော့ဖ်ဝဲထောက်ပံ့ရေးကွင်းဆက်တစ်ခုလုံးကို အားကောင်းစေပါသည်။

sca-tools-software-composition-analysis-tools
သင့်ဆော့ဖ်ဝဲလ်အန္တရာယ်များကို ဦးစားပေးသတ်မှတ်ခြင်း၊ ပြုပြင်ခြင်းနှင့် လုံခြုံစေခြင်း
သင့်ရဲ့ အခမဲ့အကောင့်ကို ရယူလိုက်ပါ။
အကြွေးဝယ်ကဒ်မရှိပါ။

သင့်ရဲ့ Software Development နဲ့ Delivery ကို လုံခြုံအောင်ထားပါ

Xygeni ထုတ်ကုန်အစုံနှင့်အတူ