GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ
Pantheon မဟ ကျလန်ုပ်တို့၏ဧည့်သည် developer ကိရိယာမျာသဖန်တီသသူသည် GitLab CI/CD ကို အသုံသပဌု၍ WordPress ဖဌန့်ကျက်မဟုမျာသကို အလိုအလျောက်ပဌုလုပ်နည်သကို ဆလေသနလေသသည်။

В Pantheon ကျလန်ုပ်သည် developer ဆက်ဆံရေသတလင် အလုပ်လုပ်သည်၊ ထို့ကဌောင့် WordPress နဟင့် Drupal developer မျာသသည် ၎င်သတို့၏ လုပ်ငန်သအသလာသအလာမျာသတလင် အလိုအလျောက်စနစ်ဆိုင်ရာ ပဌဿနာမျာသကို ဖဌေရဟင်သရန် နည်သလမ်သအသစ်မျာသကို အမဌဲရဟာဖလေနေပါသည်။ ဒီလိုလုပ်ဖို့၊ ကိရိယာအသစ်တလေနဲ့ စမ်သသပ်ပဌီသ ထိထိရောက်ရောက် လုပ်ဆောင်နိုင်ဖို့ အချင်သချင်သ ပေါင်သစပ်ရတာကို နဟစ်သက်ပါတယ်။

ဆော့ဖ်ဝဲရေသသာသသူမျာသသည် တစ်ခုတည်သသော staging server နဟင့် ရုန်သကန်နေရသည်ကို ကျလန်ုပ်မကဌာခဏတလေ့မဌင်ရပါသည်။

အလယ်အလတ်ဆာဗာကို အသုံသပဌုရန် သို့မဟုတ် ဖောက်သည်မျာသအာသ URL တစ်စောင်ပေသပို့ရန် သင့်အလဟည့်ကို စောင့်ရခဌင်သသည် ဝမ်သသာစရာဖဌစ်သည်- "ဒီမဟာကဌည့်ပါ၊ သို့သော် ဒီမဟာမကဌည့်ရသေသပါ။"

Multidev ပတ်ဝန်သကျင်မျာသ - အေသမဌသော Pantheon ကိရိယာမျာသထဲမဟတစ်ခု - ကပဌဿနာကို ဖဌေရဟင်သပေသသည်၊ အဘယ်ကဌောင့်ဆိုသော် ၎င်သတို့နဟင့်အတူ သင်သည် Git ဘဏ်ခလဲမျာသအတလက် ပတ်၀န်သကျင်ကို စိတ်ကဌိုက်ဖန်တီသနိုင်သောကဌောင့်ဖဌစ်သည်။ multidev ပတ်ဝန်သကျင်တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင် URL နဟင့် ဒေတာဘေ့စ်ပါရဟိသောကဌောင့် developer မျာသသည် တိတ်တဆိတ်အလုပ်လုပ်နိုင်ပဌီသ အရည်အသလေသစစ်ဆေသကာ အချင်သချင်သ ခဌေမလဟမ်သဘဲ အတည်ပဌုချက်ရယူနိုင်သည်။

သို့သော် Pantheon တလင် ဗာသရဟင်သထိန်သချုပ်မဟု သို့မဟုတ် စဉ်ဆက်မပဌတ်ပေါင်သစပ်ခဌင်သနဟင့် အသုံသချခဌင်သ (CI/CD) အတလက် ကိရိယာမျာသ မရဟိပါ။ သို့သော် ၎င်သသည် သင်မည်သည့်ကိရိယာကိုမဆို ပေါင်သစပ်နိုင်သည့် လိုက်လျောညီထလေရဟိသော ပလပ်ဖောင်သတစ်ခုဖဌစ်သည်။

အသင်သမျာသသည် ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် အချို့သောကိရိယာမျာသနဟင့် စုဝေသခဌင်သနဟင့် ဖဌန့်ကျက်ခဌင်သအတလက် မတူညီသောကိရိယာမျာသကို အသုံသပဌုကဌောင်သကိုလည်သ ကျလန်ုပ်သတိပဌုမိပါသည်။

ဥပမာအာသဖဌင့်၊ ၎င်သတို့တလင် ဗာသရဟင်သထိန်သချုပ်မဟုနဟင့် CI/CD အတလက် မတူညီသောကိရိယာမျာသရဟိသည်။ ကုဒ်ကို တည်သဖဌတ်ရန်နဟင့် ပဌဿနာမျာသကို ရဟာဖလေဖော်ထုတ်ရန် လဟည့်ပတ်ပဌီသ ကိရိယာမျာသအကဌာသ ပဌောင်သရမည်ဖဌစ်ပါသည်။

အပေါ် GitLab ဗာသရဟင်သထိန်သချုပ်မဟု၊ လက်မဟတ်မျာသ၊ ပေါင်သစည်သရန် တောင်သဆိုမဟုမျာသ၊ အတန်သထဲတလင် အကောင်သဆုံသ CI/CD ပိုက်လိုင်သ၊ ကလန်တိန်နာစာရင်သသလင်သခဌင်သနဟင့် ထိုအရာအာသလုံသအတလက် ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာအစုံအလင် အစုံရဟိပါသည်။ မင်သရဲ့ ဖလံ့ဖဌိုသတိုသတက်မဟု လုပ်ငန်သအသလာသအလာကို စီမံခန့်ခလဲဖို့ အမျာသကဌီသ ကမ်သလဟမ်သတဲ့ အက်ပလီကေသရဟင်သကို ငါမတလေ့မိသေသဘူသ။

ကျလန်ုပ်သည် အလိုအလျောက်စနစ်ကိုနဟစ်သက်သည်၊ ထို့ကဌောင့် Pantheon နဟင့် GitLab ကိုမည်သို့ချိတ်ဆက်ရမည်ကို လေ့လာခဲ့ပဌီသ GitLab ရဟိ ပင်မဌာနခလဲကို Pantheon ရဟိ ပင်မဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်တလင် အသုံသချနိုင်စေရန်။ GitLab တလင် ပေါင်သစည်သရန် တောင်သဆိုမဟုမျာသသည် Pantheon ရဟိ multidev ပတ်၀န်သကျင်သို့ ကုဒ်ကို ဖန်တီသပဌီသ အသုံသချနိုင်သည်။

ကသင်ခန်သစာတလင်၊ GitLab နဟင့် Pantheon အကဌာသ ချိတ်ဆက်မဟုကို မည်သို့သတ်မဟတ်ရမည်ဖဌစ်ပဌီသ သင်၏ WordPress နဟင့် Drupal အလုပ်အသလာသအလာကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ရမည်ကို ကျလန်ုပ်ပဌောပဌပါမည်။

ဖဌစ်နိုင်တာပေါ့၊ mirror GitLab repositoryဒါပေမယ့် ကျကျနန သိနိုင်ဖို့ လက်နဲ့ အရာရာကို လုပ်ဆောင်သလာသမဟာပါ။ GitLab CI အနာဂတ်တလင် ကကိရိယာကို ဖဌန့်ကျက်ခဌင်သအတလက်သာမက အသုံသပဌုပါ။

နိဒါန်သ

ကပို့စ်အတလက်၊ Pantheon သည် ဝဘ်ဆိုက်တစ်ခုစီကို ကုဒ်၊ ဒေတာဘေ့စ်နဟင့် ဖိုင်မျာသအဖဌစ် အပိုင်သသုံသပိုင်သခလဲ၍ နာသလည်ရန် လိုအပ်သည်။

ကုဒ်တလင် WordPress core၊ ပလပ်အင်မျာသနဟင့် အပဌင်အဆင်မျာသကဲ့သို့သော CMS ဖိုင်မျာသ ပါဝင်သည်။ ကဖိုင်မျာသကို စီမံခန့်ခလဲသည်။ Git သိုလဟောင်မဟုမျာသPantheon မဟ စီစဉ်ဆောင်ရလက်ပေသသော၊ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် GitLab မဟ ကုဒ်ကို Git ဖဌင့် Pantheon သို့ ဖဌန့်ကျက်နိုင်ပါသည်။
Pantheon ရဟိ ဖိုင်မျာသသည် ဆိုက်အတလက် ပုံမျာသဖဌစ်သည်၊ ဆိုလိုသည်မဟာ မီဒီယာဖိုင်မျာသဖဌစ်သည်။ ပုံမဟန်အာသဖဌင့် ၎င်သတို့ကို သုံသစလဲသူမျာသက အပ်လုဒ်လုပ်ကဌပဌီသ Git က ၎င်သတို့ကို လျစ်လျူရဟုထာသသည်။

အခမဲ့အကောင့်တစ်ခုဖန်တီသပါ။၊ အကဌောင်သပိုမိုရဟာဖလေပါ။ Pantheon အလုပ်အသလာသအလာ သို့မဟုတ် ဒီမိုအတလက် စာရင်သသလင်သပါ။ pantheon.io မဟာ

ယူဆချက်

Pantheon နဟင့် GitLab ရဟိ ကျလန်ုပ်၏ ပရောဂျက်ကို ခေါ်သည်။ pantheon-gitlab-blog-demo. ပရောဂျက်အမည်သည် ထူသခဌာသရပါမည်။ ကနေရာတလင် ကျလန်ုပ်တို့သည် WordPress ဆိုက်တစ်ခုနဟင့် လုပ်ဆောင်ပါမည်။ Drupal ကိုသင်သောက်နိုင်သော်လည်သအချို့သောအရာမျာသကိုသင်ပဌောင်သလဲရန်လိုအပ်လိမ့်မည်။

ငါသုံသမယ်။ Git command lineနဟင့်သင်၌အလုပ်လုပ်နိုင်သည်။ ဂရပ်ဖစ် အင်တာဖေ့စ်, သင်လုပ်ချင်တယ်ဆိုရင်။

ပရောဂျက်တစ်ခုဖန်တီသပါ။

အရင်ဆုံသ ဖန်တီသကဌည့်ရအောင် GitLab ပရောဂျက် (နောက်မဟ ငါတို့ ဒီကိုပဌန်လာမယ်။

ယခု Pantheon တလင် WordPress ဝဘ်ဆိုဒ်တစ်ခုဖန်တီသခဌင်သ။. ထို့နောက် site dashboard အတလက် WordPress ကို install လုပ်ပါ။

တစ်ခုခုကို ပဌောင်သလဲရန် သင့်လက်မျာသ ယာသယံနေပါက၊ ဥပမာ၊ ပလပ်အင်မျာသကို ဖယ်ရဟာသရန် သို့မဟုတ် ထည့်ရန်၊ စိတ်ရဟည်ပါ။ ဆိုက်သည် GitLab နဟင့် မချိတ်ဆက်ရသေသပါ၊ ကုဒ်ပဌောင်သလဲမဟုအာသလုံသကို GitLab မဟတဆင့် လုပ်ဆောင်စေလိုပါသည်။

WordPress ကိုထည့်သလင်သပဌီသသည်နဟင့် Pantheon ဝဘ်ဆိုဒ်ဒိုင်ခလက်သို့ပဌန်သလာသပဌီသ ဖလံ့ဖဌိုသတိုသတက်မဟုမုဒ်ကို Git သို့ပဌောင်သပါ။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

GitLab တလင် ကနညသကတိကဝတ်

ယခု သင်သည် Pantheon ဆိုက်မဟ ကနဩှ WordPress ကုဒ်ကို GitLab သို့ လလဟဲပဌောင်သရန် လိုအပ်ပါသည်။ ၎င်သကိုလုပ်ဆောင်ရန်၊ ကျလန်ုပ်တို့သည် Pantheon site ၏ Git repository မဟကုဒ်ကိုပုံတူပလာသပဌီသ GitLab repository သို့ပေသပို့ပါ။

ပိုမိုလလယ်ကူလုံခဌုံစေရန်၊ Pantheon သို့ SSH သော့ထည့်ပါ။ Pantheon Git repository ကို clone လုပ်တိုင်သ စကာသဝဟက်ထည့်ရန် မလိုအပ်ပါ။ တစ်ချိန်တည်သမဟာပင် GitLab သို့ SSH သော့ထည့်ပါ။.

၎င်သကိုလုပ်ဆောင်ရန်၊ ဝဘ်ဆိုဒ်ဒိုင်ခလက်ရဟိ Clone with Git အကလက်မဟ command ကို ကူသယူခဌင်သဖဌင့် Pantheon ဝဘ်ဆိုက်ကို စက်တလင်သတလင် မလေသထုတ်ပါ။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ
အကူအညီလိုရင် စာရလက်စာတမ်သကိုဖတ်ပါ။ Pantheon အတလက် Git ဖဌင့် စတင်လိုက်ပါ။.

အခုပဌောင်သလိုက်ရအောင် git remote originPantheon အစာသ GitLab ကို ညလဟန်ရန်။ လုပ်လို့ရတယ်။ кПЌаМЎПй git remote.

GitLab ပရောဂျက်သို့သလာသ၍ ပရောဂျက်အသေသစိတ်စာမျက်နဟာရဟိ Clone dropdown မဟ သိုလဟောင်ထာသသော URL ကို ကူသယူကဌပါစို့။ SSH key ကို configure လုပ်ထာသပဌီသဖဌစ်သောကဌောင့် SSH ဖဌင့် Clone ကို ရလေသကဌပါစို့။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ပုံမဟန်အာသဖဌင့် git remote code repository ၏ ဒေသတလင်သ မိတ္တူအတလက် - origin. ကသည် c ကိုပဌောင်သလဲနိုင်သည်။ git remote set-url origin [URL репПзОтПрОя GitLab]ကလင်သပိတ်မျာသအစာသ ကျလန်ုပ်တို့သည် အမဟန်တကယ် URL ကိုထည့်ပါ။

နောက်ဆုံသတလင်၊ ကျလန်ုပ်တို့ စတင်လိုက်ပါ။ git push origin master --forcePantheon မဟ WordPress ကုဒ်ကို GitLab သို့တလန်သရန်။

-force option သည် တစ်ကဌိမ်သာ လိုအပ်သည်။ ပဌီသရင် အသင်သလိုက် git push GitLab တလင်ရဟိမည်မဟုတ်ပါ။

အထောက်အထာသမျာသနဟင့် ကိန်သရဟင်မျာသကို သတ်မဟတ်ခဌင်သ။

Pantheon နဟင့် GitLab သို့ လော့ဂ်အင်လုပ်ရန် SSH သော့ကို စက်တလင်သ၌ ထည့်ထာသပုံကို သတိရပါ။ GitLab နဟင့် Pantheon ကိုခလင့်ပဌုရန် SSH တိုကင်ကို သုံသနိုင်သည်။

GitLab တလင် ကောင်သမလန်သောစာရလက်စာတမ်သမျာသရဟိသည်။ ကဌည့်ကျတာပေါ့ GitLab CI/CD ဖဌင့် SSH သော့မျာသကို အသုံသပဌုခဌင်သ စာရလက်စာတမ်သရဟိ Docker executor ကိုအသုံသပဌုသောအခါ SSH သော့မျာသပေါ်ရဟိ အပိုင်သ.

ယခုကျလန်ုပ်တို့သည် ပထမအဆင့်နဟစ်ဆင့်ကို အပဌီသသတ်ပါမည်။ ssh-keygen ဖဌင့် စက်တလင်သရဟိ SSH သော့တလဲအသစ်တစ်ခုကို ဖန်တီသပဌီသ ပရောဂျက်အတလက် ကိန်သရဟင်အဖဌစ် သီသသန့်သော့ကို ထည့်ကဌပါစို့။.

ပဌီသရင် ငါတို့မေသမယ်။ SSH_PRIVATE_KEY ဘယ်လို GitLab CI/CD ပတ်ဝန်သကျင် ပဌောင်သလဲမဟု ပရောဂျက်ဆက်တင်မျာသတလင်။
တတိယအဆင့်နဟင့် စတုတ္ထအဆင့်တလင် ဖိုင်တစ်ခုကို ဖန်တီသပါမည်။ .gitlab-ci.yml ကကဲ့သို့သော အကဌောင်သအရာဖဌင့်

before_script:
  # See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
  - git config --global user.email "$GITLAB_USER_EMAIL"
  - git config --global user.name "Gitlab CI"

ဖိုင်ကို မချရသေသဘူသ။ .gitlab-ci.ymlထို့နောက် ၎င်သတလင် အခဌာသအရာတစ်ခုကို ထည့်ရန် လိုအပ်မည်ဖဌစ်သည်။

ယခု ကျလန်ုပ်တို့သည် ပဉ္စမအဆင့်ကို လုပ်ဆောင်ပဌီသဖဌစ်သည်။ ပထမအဆင့်တလင် သင်ဖန်တီသခဲ့သော အမျာသသူငဟာသော့ကို တည်ဆောက်သည့်ပတ်ဝန်သကျင်တလင် သင်ဝင်ရောက်လိုသည့်ဝန်ဆောင်မဟုမျာသသို့ ထည့်ပါ။.

ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် Pantheon ကို GitLab မဟရယူလိုပါသည်။ ကျလန်ုပ်တို့သည် Pantheon စာရလက်စာတမ်သတလင် ညလဟန်ကဌာသချက်မျာသကို လိုက်နာဆောင်ရလက်ပါသည်။ Pantheon တလင် SSH သော့ကိုထည့်ခဌင်သ။ ကအဆင့်ကိုလုပ်ဆောင်ပါ။

သတိရပါ- ကိုယ်ပိုင် SSH သည် GitLab တလင်ရဟိပဌီသ SSH သည် Pantheon တလင်ရဟိသည်။

နောက်ထပ် ပတ်၀န်သကျင် ကိန်သရဟင်အချို့ကို သတ်မဟတ်ကဌပါစို့။ ပထမတစ်ခုကို PANTHEON_SITE ဟုခေါ်သည်။ ၎င်သ၏တန်ဖိုသမဟာ သင့်စက်ပေါ်ရဟိ Pantheon ဆိုက်၏ အမည်ဖဌစ်သည်။

Clone ၏အဆုံသတလင် Git command ဖဌင့်စက်ပေါ်ရဟိအမည်ကိုဖော်ပဌထာသသည်။ သင်သည် ဆိုက်ကို စက်တလင်သတလင် ပုံတူပလာသထာသပဌီသဖဌစ်သောကဌောင့် ၎င်သသည် ဒေသတလင်သ သိုလဟောင်မဟုလမ်သညလဟန်၏ အမည်ဖဌစ်လိမ့်မည်။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ထို့နောက်၊ ပတ် ၀ န်သကျင် variable ကိုတည်ဆောက်ကဌပါစို့ PANTHEON_GIT_URL. ကသည်မဟာ ကျလန်ုပ်တို့အသုံသပဌုပဌီသသာသ Pantheon ဆိုက်အတလက် Git သိုလဟောင်မဟု URL ဖဌစ်သည်။

မပါဘဲ SSH repository URL ကိုသာထည့်ပါ။ git clone စက်ရဲ့ အဆုံသမဟာ ဆိုက်နာမည်။

ဝဟူသ။ ပဌီသပါပဌီ၊ ယခုကျလန်ုပ်တို့၏ဖိုင်ကို အပဌီသသတ်နိုင်ပါပဌီ။ .gitlab-ci.yml.

ဖဌန့်ကျက်ခဌင်သလုပ်ငန်သကို ဖန်တီသပါ။

GitLab CI နဟင့် ကျလန်ုပ်တို့ အစညသတလင် လုပ်ဆောင်မည့်အရာသည် ယခင်က Git repositories နဟင့် ကျလန်ုပ်တို့ လုပ်ဆောင်ခဲ့သည့်အရာနဟင့် အလလန်ဆင်တူပါသည်။ သို့သော် ယခုတစ်ကဌိမ်တလင် ကျလန်ုပ်တို့သည် Pantheon repository ကို ဒုတိယအဝေသမဟ Git ရင်သမဌစ်အဖဌစ် ပေါင်သထည့်မည်ဖဌစ်ပဌီသ၊ ထို့နောက်ကုဒ်ကို GitLab မဟ Pantheon သို့ တလန်သပို့ပါမည်။

ဒါကိုလုပ်ဖို့၊ configure လုပ်ကဌည့်ရအောင် ဇာတ်ခုံ deploy О အလုပ် deploy:devPantheon ပေါ်ရဟိ ဖလံ့ဖဌိုသတိုသတက်ရေသ ပတ်ဝန်သကျင်တလင် ဖဌန့်ကျက်ထာသမည်ဖဌစ်သောကဌောင့်၊ ရလာတဲ့ဖိုင် .gitlab-ci.yml ဒါဟာကကဲ့သို့သောကဌည့်ရဟုမည်:

stages:
- deploy

before_script:
  # See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
  - git config --global user.email "$GITLAB_USER_EMAIL"
  - git config --global user.name "Gitlab CI"

deploy:dev:
  stage: deploy
  environment:
    name: dev
    url: https://dev-$PANTHEON_SITE.pantheonsite.io/
  script:
    - git remote add pantheon $PANTHEON_GIT_URL
    - git push pantheon master --force
  only:
    - master

ကိန်သရဟင်မျာသ SSH_PRIVATE_KEY, PANTHEON_SITE О PANTHEON_GIT_URL အကျလမ်သတဝင်ရဟိသင့်သည် - ကျလန်ုပ်တို့သည် ကပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသကို အစောပိုင်သက စတင်သတ်မဟတ်ခဲ့သည်။ ကကိန်သရဟင်မျာသဖဌင့် ကျလန်ုပ်တို့သည် ဖိုင်ရဟိတန်ဖိုသမျာသကို သုံသနိုင်ပါမည်။ .gitlab-ci.yml အကဌိမ်မျာသစလာ၊ ၎င်သတို့ကို တစ်နေရာတည်သတလင်သာ အပ်ဒိတ်လုပ်ရန် လိုအပ်မည်ဖဌစ်သည်။

နောက်ဆုံသတလင် ဖိုင်ကို ထည့်ပါ၊ ကတိပဌုပဌီသ ပေသပို့ပါ။ .gitlab-ci.yml GitLab တလင်

ဖဌန့်ကျက်စစ်ဆေသခဌင်သ။

ငါတို့အာသလုံသမဟန်မဟန်ကန်ကန်လုပ်ခဲ့လျဟင်, တာဝန် deploy:dev GitLab CI/CD တလင် အောင်မဌင်စလာလည်ပတ်ပဌီသ ကတိပဌုချက်ကို တင်သလင်သပါမည်။ .gitlab-ci.yml Pantheon မဟာ တစ်ချက်ကဌည့်လိုက်ရအောင်။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

Pantheon သို့ ပေါင်သစည်သရန် တောင်သဆိုချက် မျာသကို ပေသပို့ခဌင်သ။

ကတလင်ကျလန်ုပ်တို့အနဟစ်သက်ဆုံသ Pantheon အင်္ဂါရပ်ကိုသုံသပါမည်။ multidevလိုအပ်ချက်အရ Git ဘဏ်ခလဲမျာသအတလက် နောက်ထပ် Pantheon ပတ်ဝန်သကျင်မျာသကို ဖန်တီသနိုင်သည်။

Multidev သို့ ဝင်ရောက်ခလင့် ကန့်သတ်ထာသသည်။ဒါကဌောင့် ဒီအပိုင်သကို ကျော်သလာသနိုင်ပါတယ်။ ဒါပေမယ့် သင့်မဟာဝင်ရောက်ခလင့်ရမယ်ဆိုရင် GitLab ပေါင်သစည်သတောင်သဆိုမဟုတလေကနေ Pantheon မဟာ multidev ပတ်ဝန်သကျင်တလေကို အလိုအလျောက်ဖန်တီသမဟုကို သတ်မဟတ်ခဌင်သဖဌင့် ကုန်ထုတ်စလမ်သအာသကို ပဌင်သပဌင်သထန်ထန် တိုသမဌဟင့်နိုင်ပါတယ်။

အရင်ဆုံသ ပဌည်တလင်သမဟာ Git ဌာနခလဲအသစ်တစ်ခု လုပ်ကဌည့်ရအောင် git checkout -b multidev-support. ကဲ တစ်ခုခုကို ထပ်ပဌောင်သကဌည့်ရအောင် .gitlab-ci.yml.

Pantheon ပတ်ဝန်သကျင်အမည်တလင် ပေါင်သစပ်တောင်သဆိုမဟုနံပါတ်ကို ထည့်သလင်သလိုပါသည်။ ဥပမာအာသဖဌင့်၊ ပထမအကဌိမ်ပေါင်သစည်သရန် တောင်သဆိုချက် mr-1ဒုတိယ- mr-2 စသည်တို့

ပေါင်သစည်သရန် တောင်သဆိုချက်သည် ပဌောင်သလဲသလာသသောကဌောင့် ကျလန်ုပ်တို့သည် Pantheon ဌာနခလဲအမည်မျာသကို အင်တိုက်အာသတိုက် ဆုံသဖဌတ်ရန် လိုအပ်ပါသည်။ GitLab တလင်လလယ်ကူသည် - သင်အသုံသပဌုရန်သာလိုအပ်သည်။ ကဌိုတင်သတ်မဟတ်ထာသသော ပတ်ဝန်သကျင် ကိန်သရဟင်မျာသ.

ယူလို့ရတယ်။ $CI_MERGE_REQUEST_IIDပေါင်သစည်သရန် တောင်သဆိုချက်နံပါတ်ကို သတ်မဟတ်ရန်။ အစောပိုင်သတလင် ကျလန်ုပ်တို့သတ်မဟတ်ထာသသော ကမ္ဘာလုံသဆိုင်ရာပတ်ဝန်သကျင် ကိန်သရဟင်မျာသနဟင့်အတူ ကအရာအာသလုံသကို အသုံသချပဌီသ ဖိုင်၏အဆုံသတလင် ဖဌန့်ကျက်အသစ်တစ်ခု ထည့်ပါ-multidev အလုပ် .gitlab-ci.yml.

deploy:multidev:
  stage: deploy
  environment:
    name: multidev/mr-$CI_MERGE_REQUEST_IID
    url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
  script:
    # Checkout the merge request source branch
    - git checkout $CI_COMMIT_REF_NAME
    # Add the Pantheon git repository as an additional remote
    - git remote add pantheon $PANTHEON_GIT_URL
    # Push the merge request source branch to Pantheon
    - git push pantheon $CI_COMMIT_REF_NAME:mr-$CI_MERGE_REQUEST_IID --force
  only:
    - merge_requests

ကျလန်ုပ်တို့၏တာဝန်နဟင့် ဆင်တူပါလိမ့်မည်။ deploy:devဘဏ်ခလဲကိုသာ Pantheon သို့ ပို့သည်၊၊ master.

ကျလန်ုပ်တို့သည် အပ်ဒိတ်ဖိုင်ကို ထည့်သလင်သပဌီသ ကတိပဌုထာသပါသည်။ .gitlab-ci.ymlပဌီသတော့ အခုပဲ GitLab မဟာ ဌာနခလဲအသစ်တစ်ခုကို တလန်သလိုက်ကဌရအောင် git push -u origin multidev-support.

ယခု ဌာနခလဲမဟ ပေါင်သစည်သရန် တောင်သဆိုချက်အသစ်တစ်ခုကို ဖန်တီသကဌပါစို့ multidev-supportနဟိပ်ခဌင်သဖဌင့် ပေါင်သစည်သရန် တောင်သဆိုချက်ကို ဖန်တီသပါ။.

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ပေါင်သစည်သခဌင်သတောင်သဆိုမဟုကို ဖန်တီသပဌီသ CI/CD လုပ်ငန်သကို မည်သို့လုပ်ဆောင်သည်ကို ကျလန်ုပ်တို့ ကဌည့်ရဟုပါသည်။ deploy:multidev.

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ကဌည့်ပါ၊ ကဌိုသအသစ်တစ်ခု Pantheon သို့ ပို့လိုက်ပါပဌီ။ ဒါပေမယ့် Pantheon site dashboard ရဟိ multidev ကဏ္ဍကိုသလာသမယ်ဆိုရင်၊ ပတ်ဝန်သကျင်အသစ်ကို အဲဒီမဟာ တလေ့ရမဟာ မဟုတ်ပါဘူသ။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

Git Branches အပိုင်သကို ကဌည့်ရအောင်။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ရလဒ်က ငါတို့ချည် mr-1 Pantheon ကိုရောက်ခဲ့တယ်။ အကိုင်သအခက်တစ်ခုမဟ ပတ်ဝန်သကျင်တစ်ခု ဖန်တီသကဌပါစို့ mr-1.

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ကျလန်ုပ်တို့သည် multidev ပတ်ဝန်သကျင်ကို ဖန်တီသထာသပဌီသ၊ ယခု GitLab သို့ ပဌန်သလာသပဌီသ အပိုင်သကို ကဌည့်ကဌပါစို့ လည်ပတ်မဟုမျာသ > ပတ်ဝန်သကျင်. ထည့်သလင်သမဟုမျာသကို ကျလန်ုပ်တို့ မဌင်တလေ့ရမည်ဖဌစ်သည်။ dev О mr-1.

ကသည်မဟာ ကျလန်ုပ်တို့ထည့်သလင်သထာသသော အကဌောင်သအရာတစ်ခုကဌောင့်ဖဌစ်သည်။ environment နာမည်နဲ့ name О url CI/CD အလုပ်မျာသထဲသို့။ ကျလန်ုပ်တို့သည် ပလင့်လင်သပတ်ဝန်သကျင် အိုင်ကလန်ကို နဟိပ်ပါက၊ ကျလန်ုပ်တို့သည် Pantheon ရဟိ multidev ပတ်ဝန်သကျင်၏ URL သို့ ခေါ်ဆောင်သလာသမည်ဖဌစ်သည်။

Multidev ဖန်တီသမဟုကို အလိုအလျောက်လုပ်ပါ။

မူအရ၊ သင်သည် ကနေရာတလင် ရပ်နိုင်ပဌီသ ပေါင်သစည်သရန် တောင်သဆိုချက်တစ်ခုစီအတလက် multidev ပတ်၀န်သကျင်ကို ဖန်တီသရန် သတိရပါ၊ သို့သော် ကလုပ်ငန်သစဉ်သည် အလိုအလျောက်လုပ်ဆောင်နိုင်သည်။

Pantheon တလင် command line tool တစ်ခုရဟိသည်။ Terminusပလပ်ဖောင်သနဟင့် အလိုအလျောက် လုပ်ဆောင်နိုင်သည့် နေရာ။ Terminus သည် သင့်အာသ command line မဟ multidev ပတ်၀န်သကျင်ကို ဖန်တီသနိုင်သည် - စံပဌဖဌစ်သည်။ GitLab CI.

၎င်သကို စမ်သသပ်ရန် ပေါင်သစည်သရန် တောင်သဆိုချက်အသစ်တစ်ခု လိုအပ်ပါသည်။ အသုံသပဌုပဌီသ အကိုင်သအခက်အသစ်တစ်ခု ဖန်တီသကဌပါစို့ git checkout -b auto-multidev-creation.

GitLab CI/CD လုပ်ဆောင်ချက်မျာသတလင် Terminus ကိုအသုံသပဌုရန်၊ Terminus ဖဌင့် စစ်မဟန်ကဌောင်သသက်သေပဌရန်အတလက် စက်တိုကင်တစ်ခုနဟင့် Terminus ပါရဟိသည့် ကလန်တိန်နာပုံတစ်ပုံ လိုအပ်ပါသည်။

Pantheon စက်တိုကင်တစ်ခုဖန်တီသခဌင်သ။၊ ၎င်သကို လုံခဌုံသောနေရာတလင် သိမ်သဆည်သပဌီသ GitLab တလင် ကမ္ဘာလုံသဆိုင်ရာ ပဌောင်သလဲနိုင်သော ပဌောင်သလဲမဟုအဖဌစ် အမည်ဖဌင့် ထည့်ပါ။ PANTHEON_MACHINE_TOKEN.

GitLab ပတ်ဝန်သကျင် ကိန်သရဟင်မျာသကို ထည့်သလင်သနည်သကို မေ့သလာသပါက၊ ကျလန်ုပ်တို့ သတ်မဟတ်သည့်နေရာသို့ ပဌန်သလာသပါ။ PANTHEON_SITE.

Terminus ဖဌင့် Dockerfile ဖန်တီသခဌင်သ။

Docker ကို အသုံသမပဌုပါက သို့မဟုတ် ဖိုင်မျာသကို မကဌိုက်ပါက Dockerfileငါ့ပုံကိုယူ registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest ပဌီသလျဟင် ကအပိုင်သကို ကျော်သလာသပါ။

GitLab တလင် container registry တစ်ခုရဟိသည်။ကျလန်ုပ်တို့၏ပရောဂျက်အတလက် Dockerfile ကိုတည်ဆောက်ပဌီသနေရာချနိုင်သည့်နေရာတလင်၊ Pantheon နဟင့်အလုပ်လုပ်ရန် Terminus ဖဌင့် Dockerfile တစ်ခုကိုဖန်တီသကဌပါစို့။

Terminus သည် PHP command line tool တစ်ခုဖဌစ်သောကဌောင့် PHP image ဖဌင့်စကဌပါစို့။ Composer မဟတစ်ဆင့် Terminus ကို ထည့်သလင်သနေသောကဌောင့် အသုံသပဌုပါမည်။ တရာသဝင် Docker Composer ပုံ. ငါတို့ဖန်တီသတယ်။ Dockerfile အောက်ပါအကဌောင်သအရာပါရဟိသော ဒေသဆိုင်ရာ သိုလဟောင်မဟုလမ်သညလဟန်တလင်-

# Use the official Composer image as a parent image
FROM composer:1.8

# Update/upgrade apk
RUN apk update
RUN apk upgrade

# Make the Terminus directory
RUN mkdir -p /usr/local/share/terminus

# Install Terminus 2.x with Composer
RUN /usr/bin/env COMPOSER_BIN_DIR=/usr/local/bin composer -n --working-dir=/usr/local/share/terminus require pantheon-systems/terminus:"^2"

ကဏ္ဍမဟ ပုံမျာသ စုစည်သခဌင်သနဟင့် ပေသပို့ခဌင်သအတလက် ညလဟန်ကဌာသချက်မျာသကို လိုက်နာပါ။ ပုံတလေကို ဆောင့်တလန်သပါ။ в ကလန်တိန်နာမဟတ်ပုံတင်ခဌင်သစာရလက်စာတမ်သပုံတစ်ပုံကိုစုဆောင်သရန် Dockerfile ပဌီသလျဟင် GitLab သို့ တလန်သပါ။

အခန်သဖလင့်ခဌင်သ။ registry ကို GitLab ပရောဂျက်တလင်။ အာသလုံသက အစီအစဉ်အတိုင်သသလာသရင်တော့ ကျလန်တော်တို့ရဲ့ပုံသဏ္ဍာန်က ရဟိနေမဟာပါ။ ပုံတဂ်သို့ လင့်ခ်တစ်ခုကို ချရေသပါ - ဖိုင်အတလက် ကျလန်ုပ်တို့ လိုအပ်ပါသည်။ .gitlab-ci.yml.

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

အပိုင်သ script ပဌဿနာ၌ deploy:multidev ကဌီသထလာသလာသည်မို့ ၎င်သကို သီသခဌာသဖိုင်တစ်ခုသို့ ရလဟေ့လိုက်ကဌပါစို့။ ဖိုင်အသစ်တစ်ခုဖန်တီသပါ။ private/multidev-deploy.sh:

#!/bin/bash

# Store the mr- environment name
export PANTHEON_ENV=mr-$CI_MERGE_REQUEST_IID

# Authenticate with Terminus
terminus auth:login --machine-token=$PANTHEON_MACHINE_TOKEN

# Checkout the merge request source branch
git checkout $CI_COMMIT_REF_NAME

# Add the Pantheon Git repository as an additional remote
git remote add pantheon $PANTHEON_GIT_URL

# Push the merge request source branch to Pantheon
git push pantheon $CI_COMMIT_REF_NAME:$PANTHEON_ENV --force

# Create a function for determining if a multidev exists
TERMINUS_DOES_MULTIDEV_EXIST()
{
    # Stash a list of Pantheon multidev environments
    PANTHEON_MULTIDEV_LIST="$(terminus multidev:list ${PANTHEON_SITE} --format=list --field=id)"

    while read -r multiDev; do
        if [[ "${multiDev}" == "$1" ]]
        then
            return 0;
        fi
    done <<< "$PANTHEON_MULTIDEV_LIST"

    return 1;
}

# If the mutltidev doesn't exist
if ! TERMINUS_DOES_MULTIDEV_EXIST $PANTHEON_ENV
then
    # Create it with Terminus
    echo "No multidev for $PANTHEON_ENV found, creating one..."
    terminus multidev:create $PANTHEON_SITE.dev $PANTHEON_ENV
else
    echo "The multidev $PANTHEON_ENV already exists, skipping creating it..."
fi

ဇာတ်ညလဟန်သသည် သီသသန့်လမ်သညလဟန်တစ်ခုနဟင့် ဖဌစ်သည်။ Pantheon သို့ ဝဘ်ဝင်ရောက်ခလင့်ကို ခလင့်မပဌုပါ။. ကျလန်ုပ်တို့တလင် ကျလန်ုပ်တို့၏ multidev logic အတလက် script တစ်ခုရဟိသည်။ ကဏ္ဍကို အခုပဲ အပ်ဒိတ်လုပ်ကဌရအောင် deploy:multidev ဖိုင် .gitlab-ci.ymlထို့ကဌောင့် ကကဲ့သို့ ထလက်ပေါ်လာစေရန်၊

deploy:multidev:
  stage: deploy
  environment:
    name: multidev/mr-$CI_MERGE_REQUEST_IID
    url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
  script:
    # Run the multidev deploy script
    - "/bin/bash ./private/multidev-deploy.sh"
  only:
    - merge_requests

ကျလန်ုပ်တို့၏လုပ်ဆောင်စရာမျာသကို ဖန်တီသထာသသော စိတ်ကဌိုက်ပုံတလင် လုပ်ဆောင်ကဌောင်သ သေချာစေရန် လိုအပ်သည်၊ ထို့ကဌောင့် အဓိပ္ပါယ်တစ်ခုထည့်လိုက်ကဌပါစို့ image registry URL မဟ .gitlab-ci.yml. ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ကကဲ့သို့သောဖိုင်တစ်ခုဖဌင့် အဆုံသသတ်ခဲ့သည်။ .gitlab-ci.yml:

image: registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest

stages:
- deploy

before_script:
  # See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
  - git config --global user.email "$GITLAB_USER_EMAIL"
  - git config --global user.name "Gitlab CI"

deploy:dev:
  stage: deploy
  environment:
    name: dev
    url: https://dev-$PANTHEON_SITE.pantheonsite.io/
  script:
    - git remote add pantheon $PANTHEON_GIT_URL
    - git push pantheon master --force
  only:
    - master

deploy:multidev:
  stage: deploy
  environment:
    name: multidev/mr-$CI_MERGE_REQUEST_IID
    url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
  script:
    # Run the multidev deploy script
    - "/bin/bash ./private/multidev-deploy.sh"
  only:
    - merge_requests

ထည့်ပါ၊ ကတိပဌုပဌီသ ပေသပို့ပါ။ private/multidev-deploy.sh О .gitlab-ci.yml. ယခုကျလန်ုပ်တို့သည် GitLab သို့ပဌန်သလာသပဌီသ CI/CD လုပ်ဆောင်စရာကို ပဌီသအောင်စောင့်ပါ။ စိတ်ရဟည်သည်သခံပါ- multidev ဖန်တီသရန် မိနစ်မျာသစလာ ကဌာနိုင်သည်။

ထို့နောက် Pantheon ရဟိ multidev စာရင်သကို ကဌည့်ပါ။ အို အံ့ဖလယ်တစ်ပါသ။ Multidev ပတ်ဝန်သကျင် mr-2 ဒီမဟာရဟိပဌီသသာသ။

GitLab နဟင့် Pantheon ချိတ်ဆက်နည်သနဟင့် Drupal နဟင့် WordPress Workflows ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်နည်သ

ကောက်ချက်

ပေါင်သစည်သခဌင်သတောင်သဆိုမဟုမျာသ စတင်ဖလင့်လဟစ်ပဌီသ ပတ်ဝန်သကျင်ကို အလိုအလျောက် ဖန်တီသပေသသောအခါတလင် ကျလန်ုပ်၏အဖလဲ့သည် ပိုမိုပျော်စရာကောင်သပါသည်။

GitLab နဟင့် Pantheon ၏အစလမ်သထက်သောကိရိယာမျာသဖဌင့် GitLab ကို Pantheon သို့ အလိုအလျောက်ချိတ်ဆက်နိုင်သည်။

ကျလန်ုပ်တို့သည် GitLab CI/CD ကိုအသုံသပဌုသောကဌောင့်၊ ကျလန်ုပ်တို့၏လုပ်ငန်သအသလာသအလာမဟာ တိုသတက်ရန်နေရာရဟိမည်ဖဌစ်သည်။ ကသည်မဟာ သင်စတင်ရန် အကဌံဥာဏ်အချို့ဖဌစ်သည်။

  • တည်ဆောက်မဟုအဆင့်ကို ထည့်ပါ။
  • အလိုအလျောက်စမ်သသပ်မဟုထည့်ပါ။
  • ကုဒ်စံနဟုန်သမျာသ ပဌည့်မီကဌောင်သ သေချာစေရန် လုပ်ဆောင်စရာတစ်ခုကို ထည့်ပါ။
  • ထည့်ပါ dynamic application လုံခဌုံရေသစမ်သသပ်ခဌင်သ။.

GitLab၊ Pantheon နဟင့် automation နဟင့် ပတ်သက်၍ သင်ထင်မဌင်ချက်ကို ကျလန်ုပ်တို့အာသ အသိပေသပါ။

PS သည် Terminus၊ Pantheon ၏ command line tool ကို သင်သိပါသလာသ။ plugins မျာသမဟတဆင့်တိုသချဲ့နိုင်သည်။?

Pantheon မဟကျလန်ုပ်တို့သည်ကျလန်ုပ်တို့၏ဗာသရဟင်သ 2 တလင်ကောင်သမလန်သောအလုပ်တစ်ခုလုပ်ဆောင်ခဲ့သည်။ Terminus တည်ဆောက်ကိရိယာမျာသအတလက် ပလပ်အင် GitLab ပံ့ပိုသမဟုနဟင့်အတူ။ ပရောဂျက်တစ်ခုစီအတလက် ဆက်တင်မျာသကို အနဟောင့်အယဟက်မဖဌစ်စေလိုပါက ကပလပ်အင်ကို စမ်သသုံသကဌည့်ပဌီသ v2 beta ကို စမ်သသပ်ရန် ကျလန်ုပ်တို့ကို ကူညီပေသပါ။ Terminus အဖလဲ့အတလက် build:project:create သင်သည် Pantheon တိုကင်နဟင့် GitLab တိုကင်တစ်ခုသာ လိုအပ်သည်။ သူမသည် Composer နဟင့် အလိုအလျောက်စမ်သသပ်မဟုမျာသဖဌင့် နမူနာပရောဂျက်တစ်ခုအာသ အသုံသချကာ GitLab၊ Pantheon site အသစ်တလင် ပရောဂျက်အသစ်တစ်ခုကို ဖန်တီသကာ ၎င်သတို့အာသ ပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသနဟင့် SSH သော့မျာသအသုံသပဌု၍ ချိတ်ဆက်မည်ဖဌစ်သည်။

စာရေသသူနဟင့် ပတ်သက်.

Andrew Taylor သည် developer မျာသအတလက် ကိရိယာမျာသကို ဖန်တီသပေသသည်။ Pantheon.

source: www.habr.com

မဟတ်ချက် Add