GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي
اسان جو مهمان، ڊولپر ٽولز جو خالق Pantheon تي، GitLab CI/CD استعمال ڪندي ورڈپریس ڊيپلائيمينٽس کي خودڪار ڪرڻ بابت ڳالهائي ٿو.

В Pantheon مان ڊولپر لاڳاپن ۾ ڪم ڪريان ٿو، تنهن ڪري مان هميشه ڳولي رهيو آهيان ورڈپریس ۽ ڊروپل ڊولپرز جي مدد لاءِ نوان طريقا انهن جي ڪم فلوز ۾ آٽوميشن جا مسئلا حل ڪرڻ. هن کي ڪرڻ لاء، آئون نئين اوزار سان تجربا ڪرڻ پسند ڪريان ٿو ۽ انهن کي هڪ ٻئي سان گڏ ڪرڻ لاء موثر طريقي سان ڪم ڪرڻ لاء.

مان اڪثر ڊولپرز کي هڪ واحد اسٽيجنگ سرور سان جدوجهد ڪندي ڏسان ٿو.

اهو هڪ اهڙي خوشي آهي جو توهان جي موڙ جو انتظار ڪرڻ لاءِ وچولي سرور استعمال ڪرڻ يا ڪلائنٽ کي نوٽ سان هڪ URL موڪليو: ”هتي ڏسو، پر اڃا هتي نه ڏسو.

Multidev ماحول - ھڪڙو ٿڌو Pantheon اوزار - ھن مسئلي کي حل ڪري ٿو، ڇاڪاڻ⁠تہ انھن سان توھان گٽ شاخن لاء ماحول پيدا ڪري سگھو ٿا. هر ملٽي ڊيو ماحول جو پنهنجو URL ۽ ڊيٽابيس آهي، تنهن ڪري ڊولپر خاموشيءَ سان ڪم ڪري سگهن ٿا، معيار چيڪ ڪري سگهن ٿا، ۽ هڪ ٻئي جي آڱرين تي قدم رکڻ کان سواءِ منظوري حاصل ڪري سگهن ٿا.

پر Pantheon وٽ نسخو ڪنٽرول يا لڳاتار انضمام ۽ مقرري (CI/CD) جا اوزار نه آھن. پر اهو هڪ لچڪدار پليٽ فارم آهي جنهن سان توهان ڪنهن به اوزار کي ضم ڪري سگهو ٿا.

مون اهو پڻ محسوس ڪيو ته ٽيمون ڪجهه اوزار استعمال ڪن ٿيون ترقي لاءِ، ۽ مختلف آهن اسيمبليءَ ۽ مقرري لاءِ.

مثال طور، انهن وٽ ورزن ڪنٽرول ۽ CI/CD لاءِ مختلف اوزار آهن. توھان کي گھمڻ ڦرڻو پوندو ۽ ٽولن جي وچ ۾ ڪوڊ کي ايڊٽ ڪرڻ ۽ مسئلن جي تشخيص ڪرڻ لاءِ.

تي GitLab هتي ڊولپمينٽ ٽولز جو هڪ مڪمل سيٽ آهي: ورزن ڪنٽرول لاءِ، ٽڪيٽون، ضم ڪرڻ جون درخواستون، هڪ بهترين-ان-ڪلاس CI/CD پائپ لائن، هڪ ڪنٽينر رجسٽري، ۽ هر شيءِ جهڙو. مون اڃا تائين اهڙي ايپليڪيشن ۾ نه آئي آهي جيڪا توهان جي ترقياتي ڪم جي فلو کي منظم ڪرڻ لاء تمام گهڻو پيش ڪري ٿي.

مون کي آٽوميشن پسند آهي، تنهن ڪري مون سکيو ته ڪيئن پينٿيون کي GitLab سان ڳنڍجي ته جيئن GitLab تي مکيه برانچ ڏانهن ڪمٽ ڪيو وڃي Pantheon ۾ بنيادي ترقي واري ماحول ۾. ۽ GitLab تي ضم ڪرڻ جون درخواستون Pantheon ۾ multidev ماحول ۾ ڪوڊ ٺاهي ۽ ترتيب ڏئي سگھن ٿيون.

هن سبق ۾، مان توهان کي ٻڌائيندس ته ڪيئن GitLab ۽ Pantheon جي وچ ۾ ڪنيڪشن قائم ڪجي ۽ توهان جي ورڈپریس ۽ ڊروپل جي ڪم جي فلو کي بهتر بڻائي سگهجي.

يقيناً ممڪن آهي، آئيني GitLab مخزن، پر اسان سڀ ڪجهه پنهنجي هٿن سان ڪنداسين جنهن ۾ داخل ٿيڻ لاءِ گٽ لاب سي ۽ مستقبل ۾ هن اوزار کي استعمال نه رڳو لڳائڻ لاء.

تعارف

ھن پوسٽ لاءِ، توھان کي سمجھڻ جي ضرورت آھي ته Pantheon ھر سائيٽ کي ٽوڙي ٿو ٽن عناصر ۾: ڪوڊ، ڊيٽابيس، ۽ فائلون.

ڪوڊ ۾ سي ايم ايس فائلون شامل آهن جهڙوڪ ورڈپریس ڪور، پلگ ان، ۽ موضوعات. اهي فائلون منظم ٿيل آهن Git repositories، Pantheon پاران ميزباني ڪئي وئي، مطلب ته اسان Git سان گڏ GitLab کان Pantheon تائين ڪوڊ ترتيب ڏئي سگھون ٿا.
Pantheon ۾ فائلون ميڊيا فائلون آھن، اھو آھي، سائيٽ لاء تصويرون. عام طور تي اهي صارفين طرفان اپلوڊ ڪيا ويا آهن ۽ Git انهن کي نظر انداز ڪري ٿو.

هڪ مفت اڪائونٽ ٺاهيو، وڌيڪ ڳولهيو بابت Pantheon ڪم فلو يا هڪ Demo لاء سائن اپ ڪريو pantheon.io تي.

مفروضو

Pantheon ۽ GitLab تي منهنجو منصوبو سڏيو ويندو آهي pantheon-gitlab-blog-demo. منصوبي جو نالو منفرد هجڻ گهرجي. هتي اسان هڪ ورڈپریس سائيٽ سان ڪم ڪنداسين. توهان Drupal وٺي سگهو ٿا، پر توهان کي ڪجهه شيون تبديل ڪرڻ جي ضرورت پوندي.

مان استعمال ڪندس Git ڪمانڊ لائن۽ توهان ڪم ڪري سگهو ٿا گرافڪ انٽرفيس، جيڪڏهن توهان چاهيو ٿا.

هڪ منصوبو ٺاهيو

پهرين، اچو ته ٺاهي GitLab پروجيڪٽ (اسان ان تي بعد ۾ واپس اچون ٿا).

هاڻي Pantheon تي هڪ ورڈپریس ويب سائيٽ ٺاهڻ. پوءِ اسان سائيٽ ڊيش بورڊ لاءِ ورڈپریس انسٽال ڪريون ٿا.

جيڪڏهن توهان جا هٿ ڪجهه تبديل ڪرڻ لاءِ خارش ڪري رهيا آهن، مثال طور، هٽايو يا پلگ ان شامل ڪريو، صبر ڪريو. سائيٽ اڃا GitLab سان ڳنڍيل ناهي، ۽ اسان چاهيون ٿا ته سڀئي ڪوڊ تبديليون GitLab ذريعي وڃو.

هڪ دفعو اسان ورڈپریس انسٽال ڪريون ٿا، واپس وڃو پينٿيون ويب سائيٽ ڊيش بورڊ ۽ ڊولپمينٽ موڊ کي گِٽ ۾ تبديل ڪريو.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

GitLab تي شروعاتي واعدو

هاڻي توهان کي منتقل ڪرڻ جي ضرورت آهي شروعاتي ورڈپریس ڪوڊ Pantheon سائيٽ کان GitLab ڏانهن. ائين ڪرڻ لاءِ، اسان مقامي طور تي Pantheon سائيٽ جي Git مخزن مان ڪوڊ ڪلون ڪندا آهيون، ۽ پوءِ ان کي GitLab مخزن ڏانهن موڪليو.

ان کي آسان ۽ محفوظ بنائڻ لاء، Pantheon ۾ SSH ڪيچ شامل ڪريو ۽ اسان کي هر وقت پاسورڊ داخل ڪرڻ جي ضرورت نه پوندي جڏهن اسان هڪ Pantheon Git مخزن کي ڪلون ڪندا آهيون. ساڳئي وقت اڳ ۾ ئي GitLab ۾ SSH ڪيچ شامل ڪريو.

هن کي ڪرڻ لاءِ، ويب سائيٽ ڊيش بورڊ تي ڪلون سان گٽ فيلڊ مان ڪمانڊ ڪاپي ڪندي Pantheon ويب سائيٽ کي مقامي طور تي ڪلون ڪريو.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي
جيڪڏھن توھان کي مدد جي ضرورت آھي، دستاويز پڙھو Git for Pantheon سان شروع ڪرڻ.

هاڻي اچو ته تبديلي آڻيون git remote originPantheon جي بدران GitLab ڏانهن اشارو ڪيو. اهو ڪري سگهجي ٿو командой git remote.

اچو ته وڃو GitLab پروجيڪٽ تي ۽ نقل ڪريو مخزن جو URL ڪلون ڊراپ ڊائون مان پروجيڪٽ جي تفصيل واري صفحي تي. اچو ته چونڊيو ڪلون سان SSH اختيار، ڇو ته اسان اڳ ۾ ئي SSH ڪيئي ترتيب ڏني آهي.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

ھونئن جي git remote ڪوڊ مخزن جي مقامي ڪاپي لاءِ - origin. اهو تبديل ڪري سگهجي ٿو <c git remote set-url origin [URL репозитория GitLab]، جتي بریکٹ جي بدران اسان اصل URL داخل ڪندا آهيون.

آخرڪار، اسان لانچ ڪريون ٿا git push origin master --forceورڈپریس ڪوڊ کي Pantheon کان GitLab ڏانهن ڌڪڻ لاءِ.

-فورس آپشن صرف هڪ ڀيرو گهربل آهي. پوء ٽيمن ۾ git push اهو GitLab تي نه هوندو.

سيٽنگ اپ سندون ۽ variables

ياد رکو ته اسان Pantheon ۽ GitLab ۾ لاگ ان ٿيڻ لاءِ مقامي طور هڪ SSH ڪيڏي ڪيئن شامل ڪئي؟ SSH ٽوڪن استعمال ڪري سگھجي ٿو GitLab ۽ Pantheon کي اختيار ڏيڻ لاءِ.

GitLab وٽ بهترين دستاويز آهن. اچو ته ڏسون ايس ايس ايڇ ڪيز تي سيڪشن جڏهن دستاويز ۾ ڊڪر ايگزيڪيوٽر استعمال ڪندي SSH ڪيز استعمال ڪرڻ تي GitLab CI/CD سان.

اسان ھاڻي پھريون ٻه قدم مڪمل ڪنداسين: اچو ته 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، پوءِ توھان کي ان ۾ ٻيو ڪجھ شامل ڪرڻو پوندو.

هاڻي اسان پنجون قدم انجام ڏيون ٿا ۽ شامل ڪريو عوامي ڪنجي جيڪا توهان پهرين قدم ۾ ٺاهي آهي انهن خدمتن ۾ جيڪي توهان کي تعميراتي ماحول ۾ رسائي جي ضرورت آهي.

اسان جي صورت ۾، اسان GitLab کان Pantheon تائين رسائي چاهيون ٿا. اسان Pantheon دستاويز ۾ ڏنل هدايتن تي عمل ڪريو Pantheon ۾ SSH ڪيچ شامل ڪرڻ ۽ هن قدم کي انجام ڏيو.

ياد رکو: خانگي SSH GitLab ۾ آهي، کليل SSH Pantheon ۾ آهي.

اچو ته ڪجھ وڌيڪ ماحولياتي متغيرات کي ترتيب ڏيو. پهريون نالو PANTHEON_SITE. ان جو قدر توهان جي مشين تي Pantheon سائيٽ جو نالو آهي.

مشين تي نالو Git ڪمانڊ سان ڪلون جي آخر ۾ درج ٿيل آھي. توھان اڳ ۾ ئي سائيٽ کي مقامي طور تي ڪلون ڪيو آھي، تنھنڪري اھو ھوندو مقامي ريپوزٽري ڊاريڪٽري جو نالو.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

اڳيون، اچو ته ماحول جي متغير کي ترتيب ڏيو PANTHEON_GIT_URL. هي آهي Git مخزن جو URL Pantheon سائيٽ لاءِ جيڪو اسان اڳ ۾ ئي استعمال ڪيو آهي.

صرف SSH مخزن URL داخل ڪريو، بغير git clone ۽ آخر ۾ مشين تي سائيٽ جو نالو.

ڦوهه. اهو ٿي چڪو آهي، هاڻي اسان پنهنجي فائل کي ختم ڪري سگهون ٿا .gitlab-ci.yml.

ٺاھڻ جو ڪم ٺاھيو

جيڪو اسان شروعاتي طور تي GitLab CI سان ڪري رهيا آهيون اهو بلڪل ساڳيو آهي جيڪو اسان ماضي ۾ Git repositories سان ڪيو آهي. پر هن ڀيري، اچو ته Pantheon مخزن کي ٻئي ريموٽ گٽ ماخذ جي طور تي شامل ڪريو، ۽ پوء ڪوڊ کي دٻايو GitLab کان Pantheon ڏانهن.

هن کي ڪرڻ لاء، اچو ته ترتيب ڏيو اسٽيج deploy и ڪم deploy:dev، ڇاڪاڻ ته اسان پينٿون تي ترقي واري ماحول کي ترتيب ڏينداسين. نتيجو فائل .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 کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

پينٿيون ڏانهن ضم ڪرڻ جي درخواست جا موضوع موڪلي رهيا آهن

هتي اسان استعمال ڪنداسين منهنجي پسنديده Pantheon خصوصيت - multidev، جتي توهان گٽ شاخن لاءِ اضافي پينٿيون ماحول ٺاهي سگهو ٿا.

multidev تائين رسائي محدود آهي، تنهنڪري هن حصي کي ڇڏي سگهجي ٿو. پر جيڪڏهن توهان وٽ رسائي آهي، توهان GitLab ضم ڪرڻ جي درخواستن مان Pantheon تي ملٽي ڊيو ماحول جي خودڪار تخليق کي ترتيب ڏيڻ سان سنجيدگي سان پيداوار وڌائي سگهو ٿا.

پهرين اچو ته مقامي طور تي استعمال ڪندي هڪ نئين گٽ برانچ ٺاهيو git checkout -b multidev-support. هاڻي اچو ته ٻيهر ڪجهه تبديل ڪريون .gitlab-ci.yml.

مان پينٿيون ماحول جي نالي ۾ ضم ڪرڻ جي درخواست نمبر شامل ڪرڻ پسند ڪريان ٿو. مثال طور، پهرين ضم ڪرڻ جي درخواست آهي mr-1، ٻيون - mr-2 وغيره

ضم ڪرڻ جي درخواست تبديل ٿي، تنهنڪري اسان کي متحرڪ طور تي Pantheon برانچ جا نالا طئي ڪرڻ گهرجن. اهو GitLab تي آسان آهي - توهان کي صرف استعمال ڪرڻ جي ضرورت آهي اڳواٽ بيان ڪيل ماحولياتي متغير.

اسان وٺي سگهون ٿا $CI_MERGE_REQUEST_IIDضم ڪرڻ جي درخواست نمبر بيان ڪرڻ لاءِ. اچو ته هي سڀ ان سان گڏ لاڳو ڪريون عالمي ماحوليات جي متغيرن سان جيڪي اسان اڳ بيان ڪيون آهن ۽ فائل جي آخر ۾ هڪ نئون deploy:multidev task شامل ڪريو. .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صرف شاخ پينٿيون ڏانهن موڪليو ويو آهي، نه master.

اسان تازه ڪاري فائل کي شامل ڪيو ۽ انجام ڏنو .gitlab-ci.yml، ۽ ھاڻي اچو ته ھڪڙي نئين شاخ کي GitLab ڏانھن ڌڪيو git push -u origin multidev-support.

هاڻي اچو ته برانچ مان هڪ نئين ضم ڪرڻ جي درخواست ٺاهي multidev-supportڪلڪ ڪندي ضم ڪرڻ جي درخواست ٺاهيو.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

ضم ڪرڻ جي درخواست ٺاهي، اسان ڏسون ٿا ته ڪيئن سي آءِ/سي ڊي ڪم تي عمل ڪيو وڃي ٿو deploy:multidev.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

ڏس، هڪ نئون موضوع پينٿون ڏانهن موڪليو ويو آهي. پر جيڪڏهن اسان Pantheon سائيٽ ڊيش بورڊ تي ملٽي ڊيو سيڪشن تي وڃون ٿا، اسان اتي نئون ماحول نه ڏسنداسين.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

اچو ته ڏسو گيٽ برانچ سيڪشن.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

نتيجي طور، اسان جي سلسلي mr-1 Pantheon ڏانهن ويو. اچو ته هڪ شاخ مان ماحول پيدا ڪريون mr-1.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

اسان هڪ multidev ماحول پيدا ڪيو آهي، هاڻي اچو ته واپس وڃو GitLab ۽ سيڪشن کي ڏسو آپريشنز > ماحول. اسان لاءِ داخلائون ڏسندا dev и mr-1.

اھو آھي ڇو جو اسان ھڪڙو داخلا شامل ڪيو آھي environment نالي سان name и url CI/CD ڪمن ۾. جيڪڏهن اسان کليل ماحول جي آئڪن تي ڪلڪ ڪندا آهيون، اسان کي Pantheon تي multidev ماحول جي URL ڏانهن ورتو ويندو.

Multidev جي تخليق کي خودڪار ڪريو

اصولي طور تي، توھان ھتي روڪي سگھوٿا ۽ صرف ياد رکو ته ھر ھڪ ضم جي درخواست لاءِ ملٽي ڊيو ماحول ٺاھيو، پر اھو عمل خودڪار ٿي سگھي ٿو.

Pantheon وٽ ڪمانڊ لائن ٽول آھي ٽرمين، جتي توهان خودڪار طريقي سان پليٽ فارم سان ڪم ڪري سگهو ٿا. ٽرمينس توهان کي ڪمانڊ لائن مان ملٽي ڊيو ماحول ٺاهڻ جي اجازت ڏئي ٿو - لاءِ مثالي گٽ لاب سي.

ھن کي جانچڻ لاءِ اسان کي ھڪ نئين ضم ٿيڻ جي درخواست جي ضرورت آھي. اچو ته استعمال ڪندي هڪ نئين شاخ ٺاهي git checkout -b auto-multidev-creation.

GitLab CI/CD ڪمن ۾ ٽرمينس استعمال ڪرڻ لاءِ، توھان کي ٽرمينس سان تصديق ڪرڻ لاءِ مشين ٽوڪن جي ضرورت آھي ۽ ٽرمينس سان ھڪڙي ڪنٽينر تصوير.

هڪ Pantheon مشين ٽوڪن ٺاهڻ، ان کي محفوظ جاءِ تي محفوظ ڪريو ۽ ان کي نالو سان گڏ GitLab ۾ عالمي ماحول جي متغير طور شامل ڪريو PANTHEON_MACHINE_TOKEN.

جيڪڏهن توهان وساري ڇڏيو ته GitLab ماحوليات جي تبديلين کي ڪيئن شامل ڪيو وڃي، واپس وڃو جتي اسان وضاحت ڪئي آهي PANTHEON_SITE.

ٽرمينس سان هڪ ڊڪر فائل ٺاهڻ

جيڪڏهن توهان Docker استعمال نٿا ڪريو يا فائلون پسند نه ڪريو Dockerfileمنهنجي تصوير وٺو registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest ۽ هن سيڪشن کي ڇڏي ڏيو.

GitLab وٽ هڪ ڪنٽينر رجسٽري آهي، جتي اسان ٺاهي سگھون ٿا ۽ رکي سگھون ٿا Dockerfile اسان جي منصوبي لاءِ. اچو ته پينٿيون سان ڪم ڪرڻ لاءِ ٽرمينس سان گڏ ڊڪر فائل ٺاهيون.

ٽرمينس هڪ PHP ڪمانڊ لائن اوزار آهي، تنهنڪري اچو ته PHP تصوير سان شروع ڪريون. مان ڪمپوزر ذريعي ٽرمينس انسٽال ڪري رهيو آهيان، سو استعمال ڪندس سرڪاري ڊڪر ڪمپوزر تصوير. اسان ٺاهيندا آهيون 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 ڏانهن.

سيڪشن کوليو رجسٽري GitLab پروجيڪٽ ۾. جيڪڏهن هر شي منصوبي جي مطابق ٿي وئي، اسان جي تصوير اتي هوندي. تصوير جي ٽئگ لاءِ لنڪ لکو - اسان کي ان جي فائل جي ضرورت آهي .gitlab-ci.yml.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

حصو 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 منطق لاءِ اسڪرپٽ آهي. اچو ته هاڻي سيڪشن کي اپڊيٽ ڪريو 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 رجسٽري 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 ماحول mr-2 اڳ ۾ ئي هتي.

GitLab ۽ Pantheon کي ڪيئن ڳنڍجي ۽ ڊروپل ۽ ورڈپریس ورڪ فلوز کي بهتر بڻايو وڃي

ٿڪل

منهنجي ٽيم کي تمام گهڻو مزو آيو جڏهن اسان ضم ڪرڻ جي درخواستن کي کولڻ شروع ڪيو ۽ پاڻمرادو ماحول پيدا ڪيو.

GitLab ۽ Pantheon جي طاقتور اوزارن سان، توھان GitLab کي Pantheon سان پاڻمرادو ڳنڍي سگھو ٿا.

جتان اسان استعمال ڪريون ٿا GitLab CI/CD، اسان جو ڪم فلو وڌڻ لاءِ ڪمرو هوندو. هتي ڪجھ خيال آھن توھان کي شروع ڪرڻ لاءِ:

مون کي ٻڌايو ته توهان GitLab، Pantheon ۽ automation بابت ڇا ٿا سوچيو.

پي ايس ڇا توهان کي خبر آهي ته ٽرمينس، پينٿيون جو ڪمانڊ لائين اوزار، پلگ ان ذريعي وڌائي سگھجي ٿو?

اسان Pantheon تي اسان جي نسخي 2 تي سٺو ڪم ڪيو آهي پلگ ان ٽرمينس تعمير ڪرڻ جا اوزار GitLab سپورٽ سان. جيڪڏهن توهان هر پروجيڪٽ جي سيٽنگن سان پريشان ٿيڻ نٿا چاهيو، هن پلگ ان کي آزمايو ۽ اسان کي v2 بيٽا کي جانچڻ ۾ مدد ڪريو. ٽرمينس ٽيم لاء build:project:create توهان کي صرف هڪ Pantheon ٽوڪن ۽ هڪ GitLab ٽوڪن جي ضرورت آهي. هوءَ ڪمپوزر ۽ خودڪار ٽيسٽنگ سان گڏ هڪ نمونو پروجيڪٽ جوڙيندي، GitLab ۾ هڪ نئون پروجيڪٽ ٺاهيندي، هڪ نئين Pantheon سائيٽ، ۽ انهن کي ماحوليات جي متغير ۽ SSH ڪيز استعمال ڪندي ڳنڍيندي.

ليکڪ بابت

اينڊريو ٽيلر ڊولپرز لاءِ اوزار ٺاهي ٿو Pantheon.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو