د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول
په پینټون کې زموږ د میلمه پراختیا کونکي اوزار جوړونکی د GitLab CI/CD په کارولو سره د ورڈپریس ګمارنې اتومات کولو څرنګوالي په اړه خبرې کوي.

В پانتېين زه د پراختیا کونکي اړیکو کې کار کوم، نو زه تل د ورڈپریس او ډروپل پراختیا کونکو سره د دوی د کاري فلو کې د اتوماتیک ستونزې حل کولو کې د مرستې لپاره د نویو لارو په لټه کې یم. د دې کولو لپاره، زه د نوي وسیلو سره تجربه کول خوښوم او د یو بل سره یوځای کول ترڅو په اغیزمنه توګه کار وکړي.

زه ډیری وختونه ګورم چې پراختیا کونکي د یو واحد سټینګ سرور سره مبارزه کوي.

دا د خوښۍ ځای دی چې د منځګړی سرور کارولو لپاره خپل وار ته انتظار وکړئ یا پیرودونکو ته د یادښت سره یو URL واستوئ: "دلته وګورئ، مګر لاهم دلته مه ګورئ."

Multidev چاپیریال - د پینټون یو له غوره وسیلو څخه - دا ستونزه حل کوي ، ځکه چې د دوی سره تاسو کولی شئ د غوښتنې سره سم د ګیټ څانګو لپاره چاپیریال رامینځته کړئ. هر ملټي ډیف چاپیریال خپل یو آر ایل او ډیټابیس لري، نو پراختیا کونکي کولی شي په خاموشۍ سره کار وکړي، کیفیت وګوري، او د یو بل په ګوتو کې د ګام پرته تصویب ترلاسه کړي.

مګر Pantheon د نسخې کنټرول یا دوامداره ادغام او پلي کولو (CI/CD) لپاره وسیلې نلري. مګر دا یو انعطاف وړ پلیټ فارم دی چې ورسره تاسو کولی شئ هر ډول وسیلې مدغم کړئ.

ما دا هم ولیدل چې ټیمونه د پراختیا لپاره ځینې وسیلې کاروي، او مختلف د غونډو او ګمارلو لپاره.

د مثال په توګه، دوی د نسخې کنټرول او CI/CD لپاره مختلف وسایل لري. تاسو باید د کوډ ایډیټ کولو او د ستونزو تشخیص لپاره د وسیلو تر مینځ تیر شئ او بدل کړئ.

په ګیتاباب د پراختیایی وسیلو بشپړ سیټ شتون لري: د نسخې کنټرول لپاره ، ټیکټونه ، د ادغام غوښتنې ، په ټولګي کې غوره CI/CD پایپ لاین ، د کانټینر راجسټری ، او ورته هرڅه. زه لا تر اوسه داسې غوښتنلیک نه لرم چې ستاسو د پراختیا کاري فلو اداره کولو لپاره دومره وړاندیز کوي.

زه اتومات خوښوم ، نو ما زده کړل چې څنګه پینټون له ګیټ لیب سره وصل کړم ترڅو د ګیټ لیب اصلي څانګې ته ژمنې په پینټون کې اصلي پرمختیا چاپیریال ته ځای په ځای شي. او په GitLab کې د ادغام غوښتنې کولی شي په پینټون کې ملټي ډیف چاپیریالونو ته کوډ رامینځته او ځای په ځای کړي.

پدې ټیوټوریل کې ، زه به تاسو ته لارښوونه وکړم چې څنګه د GitLab او Pantheon ترمنځ اړیکه تنظیم کړئ او ستاسو د ورڈپریس او ډروپل کاري فلو ته وده ورکړئ.

البته دا ممکنه ده، عکس GitLab ذخیره، مګر موږ به هر څه په خپلو لاسونو سره ترسره کړو چې په اړه یې کشف کړو ګیت لیب سی آی او په راتلونکي کې دا وسیله نه یوازې د ځای پرځای کولو لپاره وکاروئ.

پېژندنه

د دې پوسټ لپاره، تاسو اړتیا لرئ پوه شئ چې پینټون هر سایټ په دریو عناصرو ماتوي: کوډ، ډیټابیس، او فایلونه.

په کوډ کې د CMS فایلونه شامل دي لکه د ورڈپریس کور، پلگ ان، او موضوعات. دا فایلونه په کې اداره کیږي د Git ذخیره، د پینتیون لخوا کوربه توب شوی ، پدې معنی چې موږ کولی شو د Git سره د GitLab څخه Pantheon ته کوډ ځای په ځای کړو.
په Pantheon کې فایلونه د رسنیو فایلونه دي، دا د سایټ لپاره انځورونه دي. معمولا دوی د کاروونکو لخوا اپلوډ شوي او Git دوی له پامه غورځوي.

یو وړیا حساب جوړ کړئپه اړه نور معلومات ترلاسه کړئ د Pantheon کاري جریان او یا د ډیمو لپاره لاسلیک وکړئ په pantheon.io کې

انګیرنې

په Pantheon او GitLab کې زما پروژه ویل کیږي pantheon-gitlab-blog-demo. د پروژې نوم باید ځانګړی وي. دلته به موږ د ورڈپریس سایټ سره کار وکړو. تاسو کولی شئ ډروپل واخلئ، مګر تاسو اړتیا لرئ چې ځینې شیان بدل کړئ.

زه به وکاروم د Git کمانډ لایناو تاسو کولی شئ په کې کار وکړئ ګرافیکي انٹرفیس، که تاسو غواړی.

یوه پروژه جوړه کړئ

لومړی، راځئ چې جوړ کړو د GitLab پروژه (موږ به وروسته بیرته راشو).

اوس په Pantheon کې د ورڈپریس ویب پاڼه جوړول. بیا موږ د سایټ ډشبورډ لپاره ورډپریس نصب کوو.

که ستاسو لاسونه د یو څه بدلولو لپاره خارښ وي، د بیلګې په توګه، فلګونه لرې کړئ یا اضافه کړئ، صبر وکړئ. سایټ لا تر اوسه د GitLab سره وصل ندی، او موږ غواړو چې د کوډ ټول بدلونونه د GitLab له لارې لاړ شي.

یوځل چې موږ ورڈپریس نصب کړو، بیرته د پینټون ویب پاڼې ډشبورډ ته لاړ شئ او د پراختیا حالت Git ته بدل کړئ.

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

په GitLab کې لومړنۍ ژمنه

اوس تاسو اړتیا لرئ د پینتیون سایټ څخه GitLab ته لومړني ورڈپریس کوډ انتقال کړئ. د دې کولو لپاره، موږ کوډ په محلي توګه د پینټون سایټ د Git ذخیره څخه کلون کوو، او بیا یې د GitLab ذخیره ته لیږو.

د دې لپاره چې دا اسانه او خوندي وي، Pantheon ته د SSH کیلي اضافه کړئ او موږ به هرکله چې د Pantheon Git ذخیره کلون کړو نو باید پاسورډ دننه کړو. په ورته وخت کې لا دمخه GitLab ته د SSH کیلي اضافه کړئ.

د دې کولو لپاره، د ویب پاڼې ډشبورډ کې د کلون سره د ګیټ فیلډ څخه د کمانډ کاپي کولو سره د پینټون ویب پاڼه په محلي توګه کلون کړئ.

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول
که تاسو مرستې ته اړتیا لرئ، اسناد ولولئ د پینټون لپاره د ګیټ سره پیل کول.

اوس راځئ چې بدلون وکړو git remote originد Pantheon پرځای GitLab ته اشاره وکړئ. دا کیدی شي командой git remote.

راځئ چې د GitLab پروژې ته لاړ شو او د پروژې توضیحاتو پا pageې کې د کلون ډراپ ډاون څخه د ذخیره کولو 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 کې نه وي.

د اعتبار او تغیراتو ترتیب کول

په یاد ولرئ چې موږ څنګه په سیمه ایزه توګه د SSH کیلي اضافه کړه ترڅو Pantheon او GitLab ته ننوتل؟ د SSH نښه د GitLab او Pantheon اجازه ورکولو لپاره کارول کیدی شي.

GitLab عالي اسناد لري. راځئ چې وګورو د SSH کلیدونو برخه کله چې د GitLab CI/CD سره د 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 سند کې لارښوونې تعقیب کوو Pantheon ته د SSH کیلي اضافه کول او دا ګام ترسره کړئ.

په یاد ولرئ: شخصي SSH په GitLab کې دی، خلاص SSH په پینټون کې دی.

راځئ چې یو څو نور چاپیریال تغیرات تنظیم کړو. لومړی یې PANTHEON_SITE نومیږي. د دې ارزښت ستاسو په ماشین کې د Pantheon سایټ نوم دی.

په ماشین کې نوم د ګیټ کمانډ سره د کلون په پای کې لیست شوی. تاسو دمخه سایټ په محلي ډول کلون کړی دی، نو دا به د ځایی ذخیره کولو لارښود نوم وي.

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

بیا، راځئ چې د چاپیریال متغیر تنظیم کړو PANTHEON_GIT_URL. دا د پینټون سایټ لپاره د Git ذخیره URL دی چې موږ دمخه کارولی دی.

یوازې د SSH ذخیره URL دننه کړئ، پرته git clone او په پای کې په ماشین کې د سایټ نوم.

اوف دا وشو، اوس موږ کولی شو خپل فایل بشپړ کړو .gitlab-ci.yml.

د ځای پرځای کولو دنده جوړه کړئ

هغه څه چې موږ به په پیل کې د GitLab CI سره ترسره کړو د هغه څه سره ورته دي چې موږ په تیرو وختونو کې د Git ذخیره کولو سره ترسره کړي دي. مګر دا ځل ، راځئ چې د پینټون ذخیره د دوهم ریموټ Git سرچینې په توګه اضافه کړو ، او بیا د 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 سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

پینټون ته د ادغام غوښتنې سلسلې لیږل

دلته به موږ زما د خوښې پینتیون ځانګړتیا وکاروو - multidev، چیرې چې تاسو کولی شئ د غوښتنې سره سم د ګیټ څانګو لپاره اضافي پینټون چاپیریال رامینځته کړئ.

multidev ته لاسرسی محدود دی، نو دا برخه پریښودل کیدی شي. مګر که تاسو لاسرسی لرئ ، تاسو کولی شئ د GitLab ادغام غوښتنو څخه په پینتیون کې د ملټي ډیف چاپیریال اتوماتیک رامینځته کولو تنظیم کولو سره محصول په جدي ډول لوړ کړئ.

لومړی راځئ چې په محلي توګه په کارولو سره د Git نوې څانګه جوړه کړو git checkout -b multidev-support. اوس راځئ چې یو څه بیا بدل کړو .gitlab-ci.yml.

زه غواړم د پینټون چاپیریال نوم کې د ادغام غوښتنې شمیره شامل کړم. د مثال په توګه، لومړی د یوځای کولو غوښتنه ده mr-1، دوهم - mr-2 etc

د ادغام غوښتنه بدلیږي، نو موږ اړتیا لرو چې په متحرک ډول د پینټون څانګې نومونه وټاکو. دا په GitLab کې اسانه ده - تاسو یوازې کارولو ته اړتیا لرئ مخکې تعریف شوي چاپیریال متغیرونه.

موږ کولی شو واخلو $CI_MERGE_REQUEST_IIDد ادغام غوښتنې شمیره مشخص کولو لپاره. راځئ چې دا ټول د نړیوال چاپیریال متغیرونو سره پلي کړو چې مخکې مو مشخص کړي او د فایل په پای کې یو نوی ځای پرځای کول: ملټي دیو دنده اضافه کړئ .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 سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

وګورئ، یو نوی تار پینټون ته لیږل شوی. مګر که موږ د پینتیون سایټ ډشبورډ کې ملټي ډیف برخې ته لاړ شو ، نو موږ به هلته نوی چاپیریال ونه ګورو

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

راځئ چې د Git څانګو برخه وګورو.

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

په پایله کې، زموږ موضوع mr-1 Pantheon ته ورسېدم. راځئ چې د یوې څانګې څخه چاپیریال جوړ کړو mr-1.

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

موږ یو څو اړخیز چاپیریال رامینځته کړی ، اوس راځئ چې بیرته GitLab ته لاړ شو او برخې ته وګورو عملیات > چاپیریال. موږ به د ننوتلو لپاره وګورو dev и mr-1.

دا ځکه چې موږ داخله اضافه کړه environment د نوم سره name и url په CI/CD دندو کې. که موږ د خلاص چاپیریال آیکون باندې کلیک وکړو ، نو موږ به په پینټون کې د ملټي ډیو چاپیریال URL ته یوو.

د ملټي ډیف رامینځته کول اتومات کړئ

په اصولو کې، تاسو کولی شئ دلته ودریږئ او یوازې د هر ادغام غوښتنې لپاره د څو اړخیز چاپیریال رامینځته کول په یاد ولرئ، مګر دا پروسه اتومات کیدی شي.

Pantheon د کمانډ لاین وسیله لري ټرمینس، چیرې چې تاسو کولی شئ په اتوماتيک ډول د پلیټ فارم سره کار وکړئ. ټرمینس تاسو ته اجازه درکوي د کمانډ لاین څخه ملټي ډیف چاپیریال رامینځته کړئ - لپاره مثالی ګیت لیب سی آی.

موږ د دې ازموینې لپاره نوي ادغام غوښتنې ته اړتیا لرو. راځئ چې په کارولو سره نوې څانګه جوړه کړو git checkout -b auto-multidev-creation.

د GitLab CI/CD دندو کې د ټرمینس کارولو لپاره ، تاسو د ټرمینس سره د تصدیق لپاره د ماشین نښه او د ټرمینس سره د کانټینر عکس ته اړتیا لرئ.

د Pantheon ماشین ټوکن جوړول، دا په خوندي ځای کې خوندي کړئ او د نوم سره په GitLab کې د نړیوال چاپیریال متغیر په توګه اضافه کړئ PANTHEON_MACHINE_TOKEN.

که تاسو د GitLab چاپیریال متغیرونو اضافه کولو څرنګوالی هیر کړی ، نو بیرته لاړشئ چیرې چې موږ تعریف کړی PANTHEON_SITE.

د ټرمینس سره د ډاکر فایل رامینځته کول

که تاسو ډاکر نه کاروئ یا فایلونه نه خوښوئ Dockerfileزما عکس واخله registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest او دا برخه پریږدئ.

GitLab د کانټینر ثبت لري، چیرې چې موږ کولی شو د خپلې پروژې لپاره ډاکر فایل جوړ او ځای په ځای کړو. راځئ چې د پینتیون سره کار کولو لپاره د ټرمینس سره ډاکر فایل جوړ کړو.

ټرمینس د پی ایچ پی کمانډ لاین وسیله ده، نو راځئ چې د پی ایچ پی عکس سره پیل وکړو. زه د کمپوزر له لارې ټرمینس نصب کوم، نو زه به یې وکاروم رسمي ډاکر کمپوزر عکس. موږ جوړوو 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 د راجستر 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 کولی شي د جوړولو لپاره څو دقیقې وخت ونیسي.

بیا موږ په پینټون کې د ملټيډیو لیست ته ګورو. اې معجزه! څو اړخیز چاپیریال mr-2 لا دمخه دلته

د GitLab او Pantheon سره وصل کولو څرنګوالی او د ډروپل او ورډپریس کاري فلو غوره کول

پایلې

زما ټیم خورا ډیر ساتیري درلوده کله چې موږ د ادغام غوښتنې خلاصول او په اتوماتيک ډول چاپیریال رامینځته کول پیل کړل.

د GitLab او Pantheon د پیاوړې وسیلو سره، تاسو کولی شئ GitLab په اتوماتيک ډول Pantheon سره وصل کړئ.

له هغه ځایه چې موږ د GitLab CI/CD کاروو، زموږ د کار جریان به د ودې لپاره خونه ولري. دلته ستاسو د پیل کولو لپاره یو څو نظرونه دي:

  • د جوړولو ګام اضافه کړئ.
  • اتوماتیک ازموینه اضافه کړئ.
  • یو دنده اضافه کړئ ترڅو ډاډ ترلاسه کړئ چې د کوډ معیارونه پوره کیږي.
  • اضافه کول د متحرک غوښتنلیک امنیت ازموینه.

اجازه راکړئ پوه شو چې تاسو د GitLab، Pantheon او اتومات په اړه څه فکر کوئ.

PS ایا تاسو پوهیږئ چې ټرمینس، د پینټون د کمانډ لاین وسیله، د پلگ انونو له لارې غزول کیدی شي?

موږ په پینټون کې زموږ په 2 نسخه کې ښه دنده ترسره کړې د ټرمینس جوړونې وسیلو لپاره پلگ ان د GitLab ملاتړ سره. که تاسو نه غواړئ د هرې پروژې لپاره تنظیماتو سره زحمت وکړئ، دا پلگ ان هڅه وکړئ او موږ سره د v2 بیټا ازموینه کې مرسته وکړئ. د ټرمینس ټیم لپاره build:project:create تاسو یوازې د پینټون ټوکن او د ګیټ لیب ټوکن ته اړتیا لرئ. هغه به د نمونې پروژې څخه یوه د کمپوزر او اتوماتیک ازموینې سره ځای په ځای کړي ، په ګیټ لیب کې یوه نوې پروژه رامینځته کړي ، د نوي پینتیون سایټ ، او د چاپیریال متغیرونو او SSH کلیدونو په کارولو سره یې وصل کړي.

د لیکوال په اړه

انډریو ټیلر د پراختیا کونکو لپاره وسیلې رامینځته کوي پانتېين.

سرچینه: www.habr.com

Add a comment