GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں
Pantheon میں ہمارے گیسٹ ڈویلپر ٹولز کا تخلیق کار GitLab CI/CD کا استعمال کرتے ہوئے ورڈپریس کی تعیناتیوں کو خودکار کرنے کے طریقہ کے بارے میں بات کرتا ہے۔

В پینٹون میں ڈویلپر تعلقات میں کام کرتا ہوں، اس لیے میں ہمیشہ ورڈپریس اور ڈروپل ڈویلپرز کو ان کے ورک فلو میں آٹومیشن کے مسائل حل کرنے میں مدد کرنے کے نئے طریقے تلاش کرتا ہوں۔ ایسا کرنے کے لیے، میں نئے ٹولز کے ساتھ تجربہ کرنا اور ان کو ایک دوسرے کے ساتھ جوڑ کر مؤثر طریقے سے کام کرنا پسند کرتا ہوں۔

میں اکثر ڈویلپرز کو سنگل اسٹیجنگ سرور کے ساتھ جدوجہد کرتے دیکھتا ہوں۔

انٹرمیڈیٹ سرور استعمال کرنے کے لیے اپنی باری کا انتظار کرنا یا کلائنٹس کو اس نوٹ کے ساتھ URL بھیجنا بہت خوشی کی بات ہے: "یہاں دیکھو، لیکن ابھی یہاں مت دیکھو۔"

ملٹی ڈیو ماحول - ٹھنڈا Pantheon ٹولز میں سے ایک - اس مسئلے کو حل کرتا ہے، کیونکہ ان کی مدد سے آپ مانگ کے مطابق Git شاخوں کے لیے ماحول بنا سکتے ہیں۔ ہر ملٹی ڈیو ماحول کا اپنا URL اور ڈیٹا بیس ہوتا ہے، لہذا ڈویلپر خاموشی سے کام کر سکتے ہیں، معیار کی جانچ کر سکتے ہیں، اور ایک دوسرے کی انگلیوں پر قدم رکھے بغیر منظوری حاصل کر سکتے ہیں۔

لیکن پینتھیون کے پاس ورژن کنٹرول یا مسلسل انضمام اور تعیناتی (CI/CD) کے اوزار نہیں ہیں۔ لیکن یہ ایک لچکدار پلیٹ فارم ہے جس کے ساتھ آپ کسی بھی ٹولز کو ضم کر سکتے ہیں۔

میں نے یہ بھی دیکھا کہ ٹیمیں ترقی کے لیے مخصوص ٹولز استعمال کرتی ہیں، اور اسمبلی اور تعیناتی کے لیے مختلف۔

مثال کے طور پر، ان کے پاس ورژن کنٹرول اور CI/CD کے لیے مختلف ٹولز ہیں۔ کوڈ میں ترمیم کرنے اور مسائل کی تشخیص کرنے کے لیے آپ کو گھومنا اور ٹولز کے درمیان سوئچ کرنا ہوگا۔

پر GitLab ترقیاتی ٹولز کا ایک مکمل سیٹ ہے: ورژن کنٹرول، ٹکٹس، انضمام کی درخواستیں، بہترین درجے کی CI/CD پائپ لائن، کنٹینر رجسٹری، اور اس طرح کی ہر چیز۔ مجھے ابھی تک کوئی ایسی ایپلی کیشن نہیں ملی جو آپ کے ترقیاتی کام کے فلو کو منظم کرنے کے لیے اتنی زیادہ پیش کش کرتی ہو۔

مجھے آٹومیشن پسند ہے، اس لیے میں نے یہ سیکھا کہ Pantheon کو GitLab سے کیسے جوڑنا ہے تاکہ GitLab پر مرکزی برانچ سے کمٹمنٹس کو Pantheon کے اہم ترقیاتی ماحول میں تعینات کیا جائے۔ اور GitLab پر ضم کرنے کی درخواستیں Pantheon میں ملٹی ڈیو ماحول میں کوڈ بنا اور تعینات کر سکتی ہیں۔

اس ٹیوٹوریل میں، میں آپ کو GitLab اور Pantheon کے درمیان کنکشن قائم کرنے اور اپنے ورڈپریس اور ڈروپل ورک فلو کو بہتر بنانے کے طریقے بتاؤں گا۔

یقیناً یہ ممکن ہے، آئینہ GitLab ذخیرہلیکن ہم اپنے ہاتھوں سے سب کچھ کریں گے۔ گٹ لیب سی آئی اور مستقبل میں اس ٹول کو نہ صرف تعیناتی کے لیے استعمال کریں۔

تعارف

اس پوسٹ کے لیے، آپ کو یہ سمجھنے کی ضرورت ہے کہ Pantheon ہر سائٹ کو تین عناصر میں تقسیم کرتا ہے: کوڈ، ڈیٹا بیس، اور فائلیں۔

کوڈ میں CMS فائلیں جیسے ورڈپریس کور، پلگ انز اور تھیمز شامل ہیں۔ ان فائلوں کو اس میں منظم کیا جاتا ہے۔ گٹ ریپوزٹریز, Pantheon کے زیر اہتمام، یعنی ہم GitLab سے Pantheon میں Git کے ساتھ کوڈ تعینات کر سکتے ہیں۔
Pantheon میں فائلیں میڈیا فائلیں ہیں، یعنی سائٹ کی تصاویر۔ عام طور پر وہ صارفین کے ذریعہ اپ لوڈ کیے جاتے ہیں اور Git انہیں نظر انداز کرتا ہے۔

ایک مفت کھاتہ کھولیںکے بارے میں مزید معلومات حاصل کریں۔ پینتھیون ورک فلو یا ایک ڈیمو کے لئے سائن اپ کریں pantheon.io پر

مفروضے

Pantheon اور GitLab پر میرا پروجیکٹ کہا جاتا ہے۔ pantheon-gitlab-blog-demo. پروجیکٹ کا نام منفرد ہونا چاہیے۔ یہاں ہم ایک ورڈپریس سائٹ کے ساتھ کام کریں گے۔ آپ Drupal لے سکتے ہیں، لیکن آپ کو کچھ چیزیں تبدیل کرنے کی ضرورت ہوگی۔

میں استعمال کروں گا۔ گٹ کمانڈ لائناور آپ کام کر سکتے ہیں۔ گرافیکل انٹرفیس، اگر آپ چاہیں تو.

ایک پروجیکٹ بنائیں

سب سے پہلے، چلو تخلیق کرتے ہیں گٹ لیب پروجیکٹ (ہم اس پر بعد میں واپس آئیں گے)۔

اب Pantheon پر ایک ورڈپریس ویب سائٹ بنانا. پھر ہم سائٹ ڈیش بورڈ کے لیے ورڈپریس انسٹال کرتے ہیں۔

اگر آپ کے ہاتھ کچھ تبدیل کرنے میں خارش کر رہے ہیں، مثال کے طور پر، پلگ ان کو ہٹا دیں یا شامل کریں، تو صبر کریں۔ سائٹ ابھی تک GitLab سے منسلک نہیں ہے، اور ہم چاہتے ہیں کہ تمام کوڈ تبدیلیاں GitLab کے ذریعے جائیں۔

ایک بار جب ہم ورڈپریس انسٹال کرتے ہیں، تو واپس Pantheon ویب سائٹ کے ڈیش بورڈ پر جائیں اور ڈویلپمنٹ موڈ کو Git میں تبدیل کریں۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

GitLab پر ابتدائی کمٹ

اب آپ کو ابتدائی ورڈپریس کوڈ Pantheon سائٹ سے GitLab میں منتقل کرنے کی ضرورت ہے۔ ایسا کرنے کے لیے، ہم مقامی طور پر Pantheon سائٹ کے Git ریپوزٹری سے کوڈ کو کلون کرتے ہیں، اور پھر اسے GitLab ریپوزٹری کو بھیج دیتے ہیں۔

اسے آسان اور محفوظ بنانے کے لیے، Pantheon میں SSH کلید شامل کریں۔ اور جب بھی ہم کسی Pantheon Git ذخیرہ کو کلون کرتے ہیں تو ہمیں پاس ورڈ درج کرنے کی ضرورت نہیں ہوگی۔ ایک ہی وقت میں پہلے سے ہی GitLab میں SSH کلید شامل کریں۔.

ایسا کرنے کے لیے، سائٹ کے ڈیش بورڈ پر کلون ود گٹ فیلڈ سے کمانڈ کاپی کر کے مقامی طور پر پینتھیون سائٹ کو کلون کریں۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں
اگر آپ کو مدد کی ضرورت ہو تو دستاویزات کو پڑھیں Git for Pantheon کے ساتھ شروعات کرنا.

اب بدلتے ہیں۔ git remote originPantheon کے بجائے GitLab کی طرف اشارہ کرنا۔ یہ کیا جا سکتا ہے۔ командой git remote.

آئیے GitLab پروجیکٹ پر جائیں اور پروجیکٹ کی تفصیلات والے صفحے پر کلون ڈراپ ڈاؤن سے ریپوزٹری یو آر ایل کاپی کریں۔ آئیے SSH کے ساتھ کلون کا انتخاب کریں، کیونکہ ہم نے پہلے ہی SSH کلید کو کنفیگر کر لیا ہے۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

умолчанию По git remote کوڈ ریپوزٹری کی مقامی کاپی کے لیے - origin. یہ تبدیل کیا جا سکتا ہے c git remote set-url origin [URL репозитория GitLab]، جہاں بریکٹ کے بجائے ہم اصل URL درج کرتے ہیں۔

آخر میں، ہم شروع کرتے ہیں git push origin master --forceورڈپریس کوڈ کو Pantheon سے GitLab تک پہنچانے کے لیے۔

-force آپشن صرف ایک بار درکار ہے۔ پھر ٹیموں میں git push یہ GitLab پر نہیں ہوگا۔

اسناد اور متغیرات کو ترتیب دینا

یاد رکھیں کہ ہم نے Pantheon اور GitLab میں لاگ ان کرنے کے لیے مقامی طور پر SSH کلید کیسے شامل کی؟ SSH ٹوکن GitLab اور Pantheon کو اجازت دینے کے لیے استعمال کیا جا سکتا ہے۔

گٹ لیب کے پاس بہترین دستاویزات ہیں۔ چلو دیکھتے ہیں 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، پھر آپ کو اس میں کچھ اور شامل کرنے کی ضرورت ہوگی۔

اب ہم پانچواں مرحلہ انجام دیتے ہیں اور عوامی کلید کو شامل کریں جو آپ نے پہلے مرحلے میں تخلیق کی تھی ان خدمات میں جو آپ کو تعمیراتی ماحول میں رسائی کی ضرورت ہے۔.

ہمارے معاملے میں، ہم GitLab سے Pantheon تک رسائی حاصل کرنا چاہتے ہیں۔ ہم پینتھیون دستاویز میں دی گئی ہدایات پر عمل کرتے ہیں۔ Pantheon میں SSH کلید شامل کرنا اور اس قدم کو انجام دیں.

یاد رکھیں: نجی SSH GitLab میں ہے، اوپن SSH Pantheon میں ہے۔

آئیے کچھ اور ماحولیاتی متغیرات مرتب کرتے ہیں۔ پہلی کو PANTHEON_SITE کہا جاتا ہے۔ اس کی قیمت آپ کی مشین پر پینتھیون سائٹ کا نام ہے۔

مشین پر نام کلون کے آخر میں گٹ کمانڈ کے ساتھ درج ہے۔ آپ پہلے ہی سائٹ کو مقامی طور پر کلون کر چکے ہیں، لہذا یہ مقامی ریپوزٹری ڈائرکٹری کا نام ہوگا۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

اگلا، آئیے ماحولیات کے متغیر کو ترتیب دیں۔ PANTHEON_GIT_URL. یہ Pantheon سائٹ کے لیے Git repository URL ہے جسے ہم پہلے ہی استعمال کر چکے ہیں۔

صرف SSH ریپوزٹری URL درج کریں، بغیر git clone اور آخر میں مشین پر سائٹ کا نام۔

افف یہ ہو گیا، اب ہم اپنی فائل کو ختم کر سکتے ہیں۔ .gitlab-ci.yml.

ایک تعیناتی کام بنائیں

ہم ابتدائی طور پر GitLab CI کے ساتھ جو کچھ کریں گے وہ اس سے بہت ملتا جلتا ہے جو ہم نے ماضی میں Git repositories کے ساتھ کیا ہے۔ لیکن اس بار، آئیے پینتھیون ریپوزٹری کو دوسرے ریموٹ گٹ سورس کے طور پر شامل کریں، اور پھر کوڈ کو 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 پینتھیون میں آئیے ایک نظر ڈالتے ہیں۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

پینتھیون کو انضمام کی درخواست کے تھریڈز بھیجے جا رہے ہیں۔

یہاں ہم اپنی پسندیدہ Pantheon خصوصیت کا استعمال کریں گے۔ ملٹی ڈیو، جہاں آپ ڈیمانڈ پر Git برانچوں کے لیے اضافی Pantheon ماحول بنا سکتے ہیں۔

ملٹی ڈیو تک رسائی محدود ہے۔، تو اس سیکشن کو چھوڑا جا سکتا ہے۔ لیکن اگر آپ کے پاس رسائی ہے تو، آپ GitLab انضمام کی درخواستوں سے Pantheon پر ملٹی ڈیو ماحول کی خودکار تخلیق ترتیب دے کر سنجیدگی سے پیداواری صلاحیت میں اضافہ کر سکتے ہیں۔

پہلے آئیے مقامی طور پر استعمال کرتے ہوئے ایک نئی گٹ برانچ بنائیں git checkout -b multidev-support. اب آئیے پھر سے کچھ تبدیل کریں۔ .gitlab-ci.yml.

میں پینتھیون ماحول کے نام میں انضمام کی درخواست نمبر شامل کرنا چاہتا ہوں۔ مثال کے طور پر، پہلی انضمام کی درخواست ہے۔ mr-1، دوسرا - mr-2 وغیرہ

انضمام کی درخواست میں تبدیلی آتی ہے، اس لیے ہمیں Pantheon برانچ کے ناموں کا متحرک طور پر تعین کرنے کی ضرورت ہے۔ GitLab پر یہ آسان ہے - آپ کو صرف استعمال کرنے کی ضرورت ہے۔ پہلے سے طے شدہ ماحولیاتی متغیرات.

ہم لے سکتے ہیں۔ $CI_MERGE_REQUEST_IIDانضمام کی درخواست نمبر بتانے کے لیے۔ آئیے اس سب کو عالمی ماحولیاتی متغیرات کے ساتھ لاگو کریں جو ہم نے پہلے بیان کیا تھا اور فائل کے آخر میں ایک نیا 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:
    # 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 کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

انضمام کی درخواست بنانے کے بعد، ہم دیکھتے ہیں کہ CI/CD ٹاسک کو کیسے انجام دیا جاتا ہے۔ deploy:multidev.

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

دیکھو، Pantheon کو ایک نیا تھریڈ بھیجا گیا ہے۔ لیکن اگر ہم پینتھیون سائٹ ڈیش بورڈ پر ملٹی ڈیو سیکشن میں جائیں تو ہمیں وہاں نیا ماحول نظر نہیں آئے گا۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

آئیے گٹ برانچز سیکشن کو دیکھتے ہیں۔

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

نتیجے کے طور پر، ہمارے دھاگے mr-1 پینتھیون پہنچ گئے۔ آئیے ایک برانچ سے ماحول بنائیں mr-1.

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

ہم نے ملٹی ڈیو ماحول بنایا ہے، اب آئیے GitLab پر واپس جائیں اور سیکشن کو دیکھیں آپریشنز > ماحولیات. کے لیے ہم اندراجات دیکھیں گے۔ dev и mr-1.

اس کی وجہ یہ ہے کہ ہم نے ایک اندراج شامل کیا ہے۔ environment نام کے ساتھ name и url CI/CD کاموں میں۔ اگر ہم کھلے ماحول کے آئیکون پر کلک کرتے ہیں، تو ہمیں Pantheon پر ملٹی ڈیو ماحول کے URL پر لے جایا جائے گا۔

ملٹی ڈیو کی تخلیق کو خودکار بنائیں

اصولی طور پر، آپ یہاں رک سکتے ہیں اور صرف انضمام کی ہر درخواست کے لیے ملٹی ڈیو ماحول بنانا یاد رکھیں، لیکن یہ عمل خودکار ہو سکتا ہے۔

پینتھیون کے پاس کمانڈ لائن ٹول ہے۔ ٹرمنسجہاں آپ خود بخود پلیٹ فارم کے ساتھ کام کر سکتے ہیں۔ ٹرمینس آپ کو کمانڈ لائن سے ملٹی ڈیو ماحول بنانے کی اجازت دیتا ہے - کے لیے مثالی۔ گٹ لیب سی آئی.

ہمیں اس کی جانچ کرنے کے لیے ایک نئی انضمام کی درخواست کی ضرورت ہے۔ آئیے استعمال کرکے ایک نئی برانچ بنائیں git checkout -b auto-multidev-creation.

GitLab CI/CD کاموں میں ٹرمینس استعمال کرنے کے لیے، آپ کو ٹرمینس کے ساتھ تصدیق کے لیے مشین ٹوکن اور ٹرمینس کے ساتھ کنٹینر امیج کی ضرورت ہے۔

پینتھیون مشین ٹوکن بنانا، اسے محفوظ جگہ پر محفوظ کریں اور اسے نام کے ساتھ GitLab میں ایک عالمی ماحولیاتی متغیر کے طور پر شامل کریں۔ PANTHEON_MACHINE_TOKEN.

اگر آپ GitLab ماحولیاتی متغیرات کو شامل کرنے کا طریقہ بھول گئے ہیں، تو واپس جائیں جہاں ہم نے وضاحت کی ہے۔ PANTHEON_SITE.

ٹرمینس کے ساتھ ایک ڈاکر فائل بنانا

اگر آپ Docker استعمال نہیں کرتے ہیں یا فائلیں پسند نہیں کرتے ہیں۔ Dockerfileمیری تصویر لے لو registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest اور اس سیکشن کو چھوڑ دیں۔

GitLab کے پاس کنٹینر رجسٹری ہے۔جہاں ہم اپنے پروجیکٹ کے لیے Dockerfile بنا اور رکھ سکتے ہیں۔ آئیے Pantheon کے ساتھ کام کرنے کے لیے Terminus کے ساتھ ایک Dockerfile بنائیں۔

ٹرمینس ایک پی ایچ پی کمانڈ لائن ٹول ہے، تو آئیے پی ایچ پی امیج کے ساتھ شروع کرتے ہیں۔ میں کمپوزر کے ذریعے ٹرمینس انسٹال کر رہا ہوں، اس لیے استعمال کروں گا۔ آفیشل ڈوکر کمپوزر امیج. ہم تخلیق کرتے ہیں۔ 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 تک ویب رسائی کی اجازت نہیں دیتا. ہمارے پاس اپنی ملٹی ڈیو منطق کے لیے اسکرپٹ ہے۔ آئیے اب سیکشن کو اپ ڈیٹ کرتے ہیں۔ 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 رجسٹری یو آر ایل سے .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 کام مکمل ہونے کا انتظار کرتے ہیں۔ صبر کریں: ملٹی ڈیو کو بنانے میں کئی منٹ لگ سکتے ہیں۔

پھر ہم پینتھیون پر ملٹی ڈیو لسٹ کو دیکھتے ہیں۔ اے معجزہ! ملٹی ڈیو ماحول mr-2 پہلے ہی یہاں

GitLab اور Pantheon کو کیسے جوڑیں اور ڈروپل اور ورڈپریس ورک فلوز کو کیسے بہتر بنائیں

حاصل يہ ہوا

میری ٹیم کو بہت زیادہ مزہ آیا جب ہم نے انضمام کی درخواستیں کھولنا اور خودکار طور پر ماحول بنانا شروع کیا۔

GitLab اور Pantheon کے طاقتور ٹولز کے ساتھ، آپ GitLab کو Pantheon سے خود بخود جوڑ سکتے ہیں۔

چونکہ ہم GitLab CI/CD استعمال کرتے ہیں، اس لیے ہمارے ورک فلو میں بڑھنے کی گنجائش ہوگی۔ آپ کو شروع کرنے کے لئے یہاں کچھ خیالات ہیں:

ہمیں بتائیں کہ آپ GitLab، Pantheon اور آٹومیشن کے بارے میں کیا سوچتے ہیں۔

PS کیا آپ جانتے ہیں کہ ٹرمینس، پینتھیون کا کمانڈ لائن ٹول، پلگ ان کے ذریعے بڑھایا جا سکتا ہے۔?

پینتھیون میں ہم نے اپنے ورژن 2 پر اچھا کام کیا ہے۔ ٹرمینس بلڈ ٹولز کے لیے پلگ ان GitLab سپورٹ کے ساتھ۔ اگر آپ ہر پروجیکٹ کے لیے سیٹنگز سے پریشان نہیں ہونا چاہتے ہیں، تو اس پلگ ان کو آزمائیں اور v2 بیٹا ٹیسٹ کرنے میں ہماری مدد کریں۔ ٹرمینس ٹیم کے لیے build:project:create آپ کو صرف ایک Pantheon ٹوکن اور GitLab ٹوکن کی ضرورت ہے۔ وہ کمپوزر اور خودکار جانچ کے ساتھ نمونے کے پروجیکٹس میں سے ایک کو تعینات کرے گی، GitLab، ایک نئی Pantheon سائٹ میں ایک نیا پروجیکٹ بنائے گی، اور انہیں ماحولیاتی متغیرات اور SSH کیز کا استعمال کرتے ہوئے جوڑ دے گی۔

مصنف کے بارے میں

اینڈریو ٹیلر ڈویلپرز کے لیے ٹولز بناتا ہے۔ پینٹون.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں