ခေတ်သစ်ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် CI / CD (စဉ်ဆက်မပြတ်ပေါင်းစည်းခြင်းနှင့်စဉ်ဆက်မပြတ်ဖြန့်ကျက်မှု) သည်မရှိမဖြစ်လိုအပ်သော core link တစ်ခုဖြစ်လာသည်။ အလိုအလျောက်ဖြစ်စဉ်များမှတစ်ဆင့်ဖွံ့ဖြိုးရေးအဖွဲ့များသည် PHP applications များကိုပိုမိုထိရောက်စွာတည်ဆောက်နိုင်, စမ်းသပ်ခြင်းနှင့်ဖြန့်ချိနိုင်ပြီးအန္တရာယ်များကိုလျော့နည်းစေသည်။
ဤဆောင်းပါးသည်အလိုအလျောက်ဆောက်လုပ်ခြင်းမှဖြန့်ကျက်ခြင်းစီမံခန့်ခွဲမှုနှင့်အတူ PHP စီမံကိန်းတွင် CI / CD လုပ်ငန်းစဉ်တွင် CD စီမံကိန်းတွင်မည်သို့တည်ဆောက်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
CI Pipeline သည် CI / CD လုပ်ငန်းစဉ်၏အခြေခံဖြစ်သည်။ ပုံမှန် PHP CIပိဒ်စင်သည်အောက်ပါအဆင့်များပါ 0 င်သည်။
ကုဒ်တင်သွင်းမှု - developer တစ် ဦး သည် Code Repository (ဥပမာ - git ကဲ့သို့) ကုဒ်ကိုတွန်းအားပေးသောအခါ CI Pipeline သည်အလိုအလျောက်ဖြစ်ပေါ်စေသည်။
တည်ဆောက်မှုအဆင့် - မှီခိုမှုတေးရေးနှင့် application package များတပ်ဆင်ရန် composer ကို run ခြင်းကဲ့သို့သောစုဆောင်းခြင်းနှင့်ထုပ်ပိုးခြင်းလုပ်ငန်းများကိုလုပ်ဆောင်ပါ။
ယူနစ်စမ်းသပ်ခြင်း - အခြေခံလုပ်ဆောင်ချက်များမှန်ကန်မှုကိုသေချာစေရန် Phpunit ကဲ့သို့သောကိရိယာများမှတစ်ဆင့်စမ်းသပ်ခြင်း။
ပေါင်းစည်းရေးစစ်ဆေးခြင်း - လက်ရှိစနစ်များနှင့်အတူကုဒ်အသစ်များ၏လိုက်ဖက်တဲ့နှင့်တည်ငြိမ်မှုကိုစစ်ဆေးပါ။
Code ကိုစစ်ဆေးခြင်း - PHPPSTAN နှင့် PPCS ကဲ့သို့သောကိရိယာများကိုအလားအလာရှိသောစွမ်းဆောင်ရည်, လုံခြုံရေးနှင့်စတိုင်ပြ issues နာများကိုစစ်ဆေးရန် PHPCS ကဲ့သို့သောကိရိယာများကိုအသုံးပြုပါ။
CI / CD သည်ပေးပို့အမြန်နှုန်းကိုတိုးတက်စေရုံသာမက PHP Code ၏အရည်အသွေးကိုသေချာစေရန်အရေးကြီးသောယန္တရားတစ်ခုလည်းဖြစ်သည်။
အလိုအလျောက်စမ်းသပ်ခြင်း - အချိန်မီအလားအလာရှိသောပြ problems နာများကိုရှာဖွေတွေ့ရှိရန်တင်သွင်းမှုတစ်ခုစီပြီးနောက်စစ်ဆေးမှုများကိုအလိုအလျောက်လည်ပတ်သည်။
static code ခွဲခြမ်းစိတ်ဖြာခြင်း - Code Deality ကိုတိုးတက်စေရန်အလားအလာရှိသောအားနည်းချက်များနှင့်စွမ်းဆောင်ရည်ပြ issues နာများကိုဖော်ထုတ်ရန်ခွဲခြမ်းစိတ်ဖြာခြင်းကိရိယာများကိုအသုံးပြုပါ။
စဉ်ဆက်မပြတ်တုံ့ပြန်ချက်: developer များချက်ချင်းစမ်းသပ်မှုများချက်ချင်းရယူပြီးရလဒ်များကိုတည်ဆောက်ရန်, လျင်မြန်စွာရှာဖွေနှင့်ပြ problems နာများကိုဖြေရှင်းနိုင်သည်။
ဖြန့်ကျက်မှုပိုက်လိုင်းသည်များသောအားဖြင့်အလိုအလျောက်ဖြစ်စဉ်များမှတစ်ဆင့်စမ်းသပ်ခြင်းနှင့်ထုတ်လုပ်ခြင်းပတ် 0 န်းကျင်များကိုစမ်းသပ်ခြင်းနှင့်ထုတ်လုပ်ခြင်းပတ် 0 န်းကျင်မှကုဒ်များကိုတိုးမြှင့်ပေးလိမ့်မည်။
စစ်ဆေးမှုဖြန့်ကျက်ခြင်း - CI စင်တာကိုစမ်းသပ်သည့်ပတ် 0 န်းကျင်သို့အလိုအလျောက်ဖြန့်ကျက်ပါ။
အသုံးပြုသူလက်ခံမှုစစ်ဆေးခြင်း (UAT) - အသုံးပြုသူများသည်စစ်ဆေးမှုပတ်ဝန်းကျင်တွင်စနစ်လုပ်ဆောင်နေသည့်စစ်ဆေးမှုပတ်ဝန်းကျင်တွင်စစ်ဆေးသည်။
ထုတ်လုပ်မှုဖြန့်ကျက်ခြင်း - အတည်ပြုထားသောကုဒ်သည်တရားဝင်ထုတ်လုပ်မှုပတ် 0 န်းကျင်သို့အလိုအလျောက်တွန်းအားပေးသည်။
PHP စီမံကိန်းများတွင်အလိုအလျောက်ဖြန့်ကျက်ထားသည့်အလိုအလျောက်ဖြန့်ကျက်မှုများကိုအကောင်အထည်ဖော်ခြင်းသည်လက်စွဲစစ်ဆင်ရေးများကိုသိသိသာသာလျှော့ချပေးနိုင်ပြီးဖြန့်ဖြူးခြင်းစွမ်းရည်ကိုတိုးတက်စေသည်။
One-click ဖြန့်ကျက်မှု - ပိုက်လိုင်းဖွဲ့စည်းမှုမှတဆင့်မြန်ဆန်။ တသမတ်တည်းဖြန့်ကျက်မှုလုပ်ငန်းစဉ်ကိုအောင်မြင်ရန်။
ဗားရှင်းထိန်းချုပ်မှု - ဖြန့်ကျက်မှုတိုင်းကိုခြေရာခံ။ လိုအပ်ပါကအလွယ်တကူလှိမ့်နိုင်သည်။
စဉ်ဆက်မပြတ်ဖြန့်ကျက်ပြီးနောက်လျှောက်လွှာ status ကိုစောင့်ကြည့်လေ့လာရန်စဉ်ဆက်မပြတ်စောင့်ကြည့်လေ့လာရေးကိရိယာများနှင့်ပေါင်းစပ်။
CI / CD သည်နည်းပညာဆိုင်ရာဖြစ်စဉ်များကိုပိုမိုကောင်းမွန်စေရုံသာမကအဖွဲ့ပူးပေါင်းမှုကိုတိုးတက်စေသည်။
လုပ်ငန်းစဉ်အမြင်အာရုံ - အဖွဲ့ 0 င်များသည်တည်ဆောက်ခြင်း, စစ်ဆေးခြင်းနှင့်ဖြန့်ကျက်မှုအဆင့်တိုင်းကိုရှင်းလင်းစွာနားလည်ပါစေ။
ရှင်းလင်းသောတာဝန်ဝတ္တရားများ - အလိုအလျောက်လုပ်ငန်းစဉ်သည်အဆင့်တစ်ခုစီတွင်တာ 0 န် 0 တ္တရားများကိုရှင်းလင်းစေသည်။
ချက်ချင်းတုံ့ပြန်ချက် - ဖွံ့ဖြိုးရေးအဖွဲ့သည်ပြ problems နာများကိုလျင်မြန်စွာတုံ့ပြန်ခြင်းနှင့်ကုဒ်အရည်အသွေးကိုစဉ်ဆက်မပြတ်ပိုမိုကောင်းမွန်စေသည်။
အောက်ဖော်ပြပါ PHP Project တွင် CI / CD ကိုအကောင်အထည်ဖော်ရန်အောက်ပါဥပမာသည်ရိုးရှင်းသော script တစ်ခုဖြစ်သည်။
# script ကိုတည်ဆောက်ပါ
composer install
php bin/phpunit --coverage-clover clover.xml
# ဖြန့်ကျက် script
rsync -avz --exclude=vendor ./public user@example.com:/var/www/app
# script ကိုစောင့်ကြည့်လေ့လာခြင်း
uptime
df -h
PHP CI / CD သည်ခေတ်မီဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်များအတွက်အဓိကကိရိယာတစ်ခုဖြစ်သည်။ အလိုအလျောက်တည်ဆောက်ခြင်း, စမ်းသပ်ခြင်းနှင့်ဖြန့်ကျက်ခြင်းအားဖြင့်အသင်းများသည်တည်ငြိမ်မှုကိုသေချာစေရန်အရည်အသွေးမြင့်ဆော့ဝဲလ်ကိုဖြန့်ဖြူးခြင်းအားဖြင့်အသင်းများကိုအရှိန်မြှင့်နိုင်သည်။ စဉ်ဆက်မပြတ်ပေါင်းစည်းခြင်းနှင့်ဖြန့်ကျက်ခြင်းတို့သည်နည်းပညာဆိုင်ရာဖြစ်စဉ်များကိုပိုမိုကောင်းမွန်စေရန်သာမကအဖွဲ့ပူးပေါင်းမှုနှင့်ရေရှည်တည်တံ့ခိုင်မြဲသောစီမံကိန်းဖွံ့ဖြိုးတိုးတက်မှုကိုလည်းမြှင့်တင်ပေးသည်။