GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ
Pantheon дахь манай зочин хөгжүүлэгч хэрэгсэл бүтээгч нь GitLab CI/CD ашиглан WordPress-ийн байршуулалтыг хэрхэн автоматжуулах талаар ярьж байна.

В Pantheon Би хөгжүүлэгчтэй харилцах чиглэлээр ажилладаг тул WordPress болон Drupal хөгжүүлэгчдэд өөрсдийн ажлын урсгалын автоматжуулалтын асуудлыг шийдвэрлэхэд туслах шинэ арга замыг үргэлж хайж байдаг. Үүний тулд би шинэ хэрэгслүүдийг туршиж үзээд, бие биетэйгээ хослуулан үр дүнтэй ажиллах дуртай.

Хөгжүүлэгчид нэг үе шаттай сервертэй тэмцэж байгааг би байнга хардаг.

Завсрын сервер ашиглах ээлжээ хүлээх эсвэл "Энд хар, гэхдээ эндээс хараахан битгий хар" гэсэн бичээстэй URL хаягийг үйлчлүүлэгчид илгээх нь үнэхээр таатай байна.

Олон хөгжүүлэгч орчин - Pantheon-ийн гайхалтай хэрэгслүүдийн нэг нь энэ асуудлыг шийддэг, учир нь тэдгээрийн тусламжтайгаар та Git-ийн салбаруудад шаардлагатай орчинг бий болгож чадна. Multidev орчин бүр өөрийн гэсэн URL болон мэдээллийн сантай байдаг тул хөгжүүлэгчид бие биенийхээ хурууг гишгэхгүйгээр чимээгүйхэн ажиллаж, чанарыг шалгаж, зөвшөөрөл авах боломжтой.

Гэхдээ Pantheon-д хувилбарыг хянах эсвэл тасралтгүй нэгтгэх, байршуулах (CI/CD) хэрэгслүүд байдаггүй. Гэхдээ энэ бол ямар ч хэрэгслийг нэгтгэх боломжтой уян хатан платформ юм.

Багууд хөгжүүлэхэд тодорхой хэрэгсэл ашигладаг бол угсрах, байрлуулахдаа өөр өөр хэрэгслийг ашигладаг болохыг би бас анзаарсан.

Жишээлбэл, тэд хувилбарын удирдлага болон CI/CD-д зориулсан өөр өөр хэрэгслүүдтэй. Та кодыг засах, асуудлыг оношлохын тулд эргэлдэж, хэрэгслүүдийн хооронд шилжих хэрэгтэй.

дээр GitLab хувилбарын хяналт, тасалбар, нэгтгэх хүсэлт, шилдэг CI/CD дамжуулах хоолой, контейнерийн бүртгэл гэх мэт бүх зүйлд зориулсан хөгжүүлэлтийн иж бүрэн хэрэгслүүд байдаг. Би таны хөгжүүлэлтийн ажлын урсгалыг удирдах маш их зүйлийг санал болгодог програмтай хараахан тааралдаагүй байна.

Би автоматжуулалтад дуртай, тиймээс би Pantheon-г GitLab-тай хэрхэн холбох талаар сурсан бөгөөд ингэснээр GitLab дээрх үндсэн салбарыг Pantheon-ийн үндсэн хөгжүүлэлтийн орчинд байршуулах болно. Мөн GitLab дээр нэгтгэх хүсэлтүүд нь Pantheon дахь олон хөгжүүлэгч орчинд код үүсгэж, байршуулах боломжтой.

Энэ зааварт би танд GitLab болон Pantheon хоёрын хооронд холболтыг хэрхэн тохируулах, WordPress болон Drupal ажлын урсгалыг оновчтой болгох талаар тайлбарлах болно.

Мэдээжийн хэрэг боломжтой, GitLab агуулахын толин тусгал, гэхдээ бид бүх зүйлийг өөрийн гараар хийх болно GitLab CI Ирээдүйд энэ хэрэгслийг зөвхөн байршуулах зорилгоор ашиглахгүй.

Танилцуулга

Энэ нийтлэлийн хувьд Pantheon нь сайт бүрийг код, мэдээллийн сан, файл гэсэн гурван элемент болгон хуваадаг гэдгийг ойлгох хэрэгтэй.

Энэхүү код нь WordPress цөм, залгаасууд, сэдэв зэрэг CMS файлуудыг агуулдаг. Эдгээр файлуудыг удирддаг Git репозиторууд, Pantheon-ийн зохион байгуулсан нь бид Git-тэй GitLab-аас Pantheon руу код байршуулах боломжтой гэсэн үг юм.
Pantheon дахь файлууд нь медиа файлууд, өөрөөр хэлбэл сайтад зориулсан зургууд юм. Ихэвчлэн тэдгээрийг хэрэглэгчид байршуулдаг бөгөөд Git тэднийг үл тоомсорлодог.

Үнэгүй данс үүсгэх, талаар илүү ихийг олж мэдэх Пантеоны ажлын урсгал буюу демо дээр бүртгүүлнэ үү pantheon.io дээр.

Таамаглал

Pantheon болон GitLab дээрх миний төслийг гэдэг pantheon-gitlab-blog-demo. Төслийн нэр өвөрмөц байх ёстой. Энд бид WordPress сайттай ажиллах болно. Та Drupal авч болно, гэхдээ та зарим зүйлийг өөрчлөх хэрэгтэй болно.

Би ашиглах болно Git командын мөрмөн та ажиллах боломжтой график интерфэйс, Хэрвээ чи хүсвэл.

Төсөл үүсгэх

Эхлээд бүтээцгээе GitLab төсөл (бид дараа нь энэ тухай эргэн харах болно).

Одоо Pantheon дээр WordPress вэбсайт үүсгэх. Дараа нь бид сайтын хяналтын самбарт WordPress суулгана.

Хэрэв таны гар ямар нэг зүйлийг өөрчлөх гэж загатнаж байвал, жишээлбэл, залгаасуудыг устгах эсвэл нэмэх, тэвчээртэй байгаарай. Энэ сайт GitLab-д хараахан холбогдоогүй байгаа бөгөөд бид бүх кодын өөрчлөлтийг GitLab-ээр дамжуулан хийхийг хүсч байна.

WordPress-ийг суулгасны дараа Pantheon вэбсайтын хяналтын самбар руу буцаж очоод хөгжүүлэлтийн горимыг Git болгон өөрчил.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

GitLab дээрх анхны амлалт

Одоо та Pantheon сайтаас GitLab руу анхны WordPress кодыг шилжүүлэх хэрэгтэй. Үүнийг хийхийн тулд бид Pantheon сайтын Git репозитороос кодыг хуулбарлаж, GitLab репозитор руу илгээдэг.

Үүнийг илүү хялбар, аюулгүй болгохын тулд, Pantheon-д SSH түлхүүр нэмнэ үү Мөн бид Pantheon Git репозиторыг хуулбарлах бүрт нууц үг оруулах шаардлагагүй болно. Үүний зэрэгцээ аль хэдийн GitLab-д SSH түлхүүр нэмнэ үү.

Үүнийг хийхийн тулд сайтын хяналтын самбар дээрх Clone with Git талбараас командыг хуулж Pantheon сайтыг орон нутагт хувилна.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ
Хэрэв танд тусламж хэрэгтэй бол баримт бичгийг уншина уу Pantheon-д зориулсан Git-ийг эхлүүлж байна.

Одоо өөрчилье git remote originPantheon-ын оронд GitLab руу зааж өгөх. Үүнийг хийж болно командой git remote.

GitLab төсөл рүү орж, төслийн дэлгэрэнгүй хуудасны Clone унадаг цэснээс репозиторын URL-г хуулж авцгаая. Бид аль хэдийн SSH түлхүүрийг тохируулчихсан байгаа тул Clone with SSH сонголтыг сонгоцгооё.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

анхдагчаар git remote кодын агуулахын орон нутгийн хуулбарын хувьд - origin. Үүнийг өөрчилж болно c git remote set-url origin [URL репозитория GitLab], хаалтны оронд бид бодит URL-г оруулна.

Эцэст нь бид эхлүүлнэ git push origin master --forcePantheon-аас GitLab руу WordPress кодыг түлхэх.

Хүчний сонголт нь зөвхөн нэг удаа хэрэгтэй. Дараа нь багуудаар git push Энэ нь GitLab дээр байхгүй болно.

Итгэмжлэл болон хувьсагчдыг тохируулах

Pantheon болон GitLab-д нэвтрэхийн тулд SSH түлхүүрийг хэрхэн дотооддоо нэмсэнийг санаж байна уу? SSH токеныг GitLab болон Pantheon-д зөвшөөрөл олгоход ашиглаж болно.

GitLab нь маш сайн баримт бичигтэй. Харцгаая GitLab CI/CD-тэй SSH түлхүүрүүдийг ашиглах тухай баримт бичигт Docker гүйцэтгэгчийг ашиглах үед 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 дээр байдаг.

Өөр хэдэн орчны хувьсагчийг тохируулцгаая. Эхнийх нь PANTHEON_SITE гэж нэрлэгддэг. Үүний утга нь таны машин дээрх Pantheon сайтын нэр юм.

Машин дээрх нэрийг Clone with Git командын төгсгөлд жагсаасан болно. Та сайтыг аль хэдийн дотоодод хувилсан тул энэ нь орон нутгийн хадгалах сангийн лавлах нэр байх болно.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Дараа нь орчны хувьсагчийг тохируулъя PANTHEON_GIT_URL. Энэ бол бидний аль хэдийн ашигласан Pantheon сайтын Git репозиторын URL юм.

Зөвхөн SSH репозиторын URL-г оруулахгүй git clone мөн төгсгөлд нь машин дээрх сайтын нэр.

Өө. Дууслаа, одоо бид файлаа дуусгаж болно .gitlab-ci.yml.

Байршуулах даалгавар үүсгэ

GitLab CI дээр бидний хийх зүйл нь Git репозиторууд дээр өмнө нь хийж байсан зүйлтэй маш төстэй юм. Гэхдээ энэ удаад Pantheon репозиторийг хоёр дахь алсын Git эх сурвалж болгон нэмээд GitLab-аас Pantheon руу код оруулъя.

Үүнийг хийхийн тулд тохиргоогоо хийцгээе шат deploy и даалгавар deploy:dev, учир нь бид Pantheon дээрх хөгжүүлэлтийн орчинд байршуулах болно. Үүссэн файл .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-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Pantheon руу нэгтгэх хүсэлт илгээж байна

Энд бид миний дуртай Pantheon функцийг ашиглах болно multidev, Та Git салбаруудад нэмэлт Pantheon орчинг хүсэлтээр үүсгэж болно.

Multidev-д хандах хандалт хязгаарлагдмал, тиймээс энэ хэсгийг алгасаж болно. Гэхдээ хэрэв танд нэвтрэх эрх байгаа бол GitLab нэгтгэх хүсэлтээс Pantheon дээр олон хөгжүүлэгч орчинг автоматаар үүсгэх тохиргоог хийснээр бүтээмжийг нухацтай нэмэгдүүлэх боломжтой.

Эхлээд шинэ Git салбарыг ашиглан дотооддоо хийцгээе git checkout -b multidev-support. Одоо дахиад нэг зүйлийг өөрчилье .gitlab-ci.yml.

Би Pantheon орчны нэрэнд нэгтгэх хүсэлтийн дугаарыг оруулах дуртай. Жишээлбэл, анхны нэгтгэх хүсэлт нь 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, зөвхөн салбар нь Pantheon руу илгээгдсэн, биш master.

Бид шинэчлэгдсэн файлыг нэмж орууллаа .gitlab-ci.yml, тэгээд одоо GitLab руу шинэ салбарыг түлхэцгээе git push -u origin multidev-support.

Одоо салбараас шинээр нэгтгэх хүсэлт үүсгэцгээе multidev-supportдарснаар Нэгтгэх хүсэлт үүсгэх.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Нэгтгэх хүсэлтийг үүсгэсний дараа бид CI/CD даалгаврыг хэрхэн гүйцэтгэж байгааг харна deploy:multidev.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Хараач, Пантеон руу шинэ утас илгээгдсэн байна. Гэхдээ хэрэв бид Pantheon сайтын хяналтын самбар дээрх multidev хэсэг рүү очвол тэнд шинэ орчин харагдахгүй.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Git салбаруудын хэсгийг харцгаая.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Үүний үр дүнд бидний утас mr-1 Пантеонд ирлээ. Салбараас орчин бүрдүүлье mr-1.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Бид multidev орчин үүсгэсэн, одоо GitLab руу буцаж очоод хэсгийг харцгаая Үйл ажиллагаа > Хүрээлэн буй орчин. Бид бичлэгүүдийг харах болно dev и mr-1.

Энэ нь бид оруулга нэмсэнтэй холбоотой юм environment Нэртэйгээр name и url CI/CD даалгаврууд руу. Хэрэв бид нээлттэй орчны дүрс дээр дарвал Pantheon дээрх multidev орчны URL руу очих болно.

Multidev үүсгэх автоматжуулалт

Зарчмын хувьд та энд зогсоож, нэгтгэх хүсэлт бүрт multidev орчныг бий болгохыг санаарай, гэхдээ энэ процессыг автоматжуулж болно.

Pantheon нь тушаалын мөрийн хэрэгсэлтэй Терминус, та платформтой автоматаар ажиллах боломжтой. Терминус нь танд командын мөрөөс multidev орчин үүсгэх боломжийг олгодог - хамгийн тохиромжтой GitLab CI.

Үүнийг шалгахын тулд бидэнд шинэ нэгтгэх хүсэлт хэрэгтэй байна. ашиглан шинэ салбар үүсгэцгээе git checkout -b auto-multidev-creation.

GitLab CI/CD даалгавруудад Terminus ашиглахын тулд танд Terminus-тай баталгаажуулах машины токен, Терминустай контейнер дүрс хэрэгтэй.

Pantheon Machine Token үүсгэх, аюулгүй газар хадгалаад GitLab-д нэрээр нь глобал орчны хувьсагч болгон нэмнэ үү PANTHEON_MACHINE_TOKEN.

Хэрэв та GitLab орчны хувьсагчдыг хэрхэн нэмэхээ мартсан бол бидний тодорхойлсон газар руу буцна уу PANTHEON_SITE.

Терминус ашиглан Dockerfile үүсгэх

Хэрэв та Docker ашигладаггүй эсвэл файлд дургүй бол Dockerfile, миний зургийг аваарай registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest мөн энэ хэсгийг алгасах.

GitLab нь контейнерийн бүртгэлтэй, бид төслийнхөө Dockerfile-г үүсгэж, байрлуулах боломжтой. Pantheon-той ажиллахын тулд Terminus-тай Dockerfile үүсгэцгээе.

Терминус бол PHP командын мөрийн хэрэгсэл тул РНР зургаас эхэлцгээе. Би 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 руу түлхэнэ үү.

Хэсгийг нээж байна Бүртгэл GitLab төсөл дээр. Хэрэв бүх зүйл төлөвлөгөөний дагуу явагдсан бол бидний дүр төрх тэнд байх болно. Зургийн шошго руу холбоосыг бичнэ үү - энэ нь бидэнд файлд хэрэгтэй .gitlab-ci.yml.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

Хэсэг 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 жагсаалтыг харна уу. Өө гайхамшиг! Multidev орчин mr-2 аль хэдийн энд байна.

GitLab болон Pantheon-г хэрхэн холбож, Drupal болон WordPress ажлын урсгалыг оновчтой болгох вэ

дүгнэлт

Биднийг нэгтгэх хүсэлтийг нээж, орчинг автоматаар үүсгэж эхлэхэд манай баг илүү хөгжилтэй байсан.

GitLab болон Pantheon-ийн хүчирхэг хэрэгслүүдийн тусламжтайгаар та GitLab-ийг Pantheon-д автоматаар холбох боломжтой.

Бид GitLab CI/CD ашигладаг тул ажлын урсгал маань өсөх зайтай байх болно. Таныг эхлүүлэх хэд хэдэн санаа энд байна:

GitLab, Pantheon болон автоматжуулалтын талаар юу гэж бодож байгаагаа надад хэлээрэй.

Жич. Та Pantheon-ын командын мөрийн хэрэгсэл болох Terminus гэдгийг мэдэх үү. залгаасуудаар дамжуулан өргөтгөх боломжтой?

Бид Pantheon-ын 2-р хувилбар дээр сайн ажилласан Терминус бүтээх хэрэгсэлд зориулсан залгаас GitLab дэмжлэгтэйгээр. Хэрэв та төсөл бүрийн тохиргоонд санаа зовохыг хүсэхгүй байгаа бол энэ залгаасыг туршаад v2 бета хувилбарыг туршихад бидэнд тусална уу. Терминус багийн хувьд build:project:create Танд зөвхөн Pantheon токен болон GitLab токен хэрэгтэй. Тэрээр жишээ төслүүдийн нэгийг Composer болон автоматжуулсан туршилтаар байрлуулж, GitLab, Pantheon-ын шинэ сайт дээр шинэ төсөл үүсгэж, орчны хувьсагч болон SSH түлхүүрүүдийг ашиглан холбох болно.

Зохиогчийн тухай

Эндрю Тейлор хөгжүүлэгчдэд зориулсан хэрэгслүүдийг бий болгодог Pantheon.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх