Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress
Офарандаи абзорҳои таҳиягари меҳмони мо дар Pantheon дар бораи чӣ гуна автоматикунонии ҷойгиркунии WordPress бо истифода аз GitLab CI/CD сӯҳбат мекунад.

В Pantheon Ман дар муносибатҳои таҳиягарон кор мекунам, аз ин рӯ ман ҳамеша роҳҳои нави кӯмак ба таҳиягарони WordPress ва Drupal дар ҳалли мушкилоти автоматизатсия дар ҷараёни кории худ меҷӯям. Барои ин ман дӯст медорам, ки бо асбобҳои нав таҷриба кунам ва онҳоро бо ҳамдигар пайваст кунам, то самаранок кор кунам.

Ман аксар вақт мебинам, ки таҳиягарон бо як сервери ягона мубориза мебаранд.

Мунтазири навбати худ барои истифодаи сервери фосилавӣ ё фиристодани URL-и муштариён бо қайди: "Инҷо нигоҳ кунед, аммо ҳоло ба ин ҷо нигоҳ накунед" хеле хуш аст.

Муҳити multidev - яке аз асбобҳои аҷиби Pantheon - ин мушкилотро ҳал мекунад, зеро бо онҳо шумо метавонед барои филиалҳои Git мувофиқи талабот муҳитҳо эҷод кунед. Ҳар як муҳити multidev дорои URL ва пойгоҳи додаҳои худро дорад, бинобар ин таҳиягарон метавонанд оромона кор кунанд, сифатро тафтиш кунанд ва бидуни қадам ба ангуштони якдигар тасдиқ кунанд.

Аммо Pantheon асбобҳо барои назорати версия ё ҳамгироӣ ва густариши муттасил (CI/CD) надорад. Аммо ин як платформаи чандир аст, ки бо он шумо метавонед ҳама гуна асбобҳоро муттаҳид кунед.

Ман инчунин мушоҳида кардам, ки гурӯҳҳо асбобҳои муайянро барои таҳия ва асбобҳои гуногунро барои ҷамъоварӣ ва ҷойгиркунӣ истифода мебаранд.

Масалан, онҳо барои идоракунии версия ва CI/CD асбобҳои гуногун доранд. Барои таҳрир кардани код ва ташхиси мушкилот шумо бояд скрипка кунед ва байни асбобҳо гузаред.

Дар бораи он Гуглаб маҷмӯи пурраи воситаҳои рушд вуҷуд дорад: барои назорати версия, чиптаҳо, дархостҳои якҷоя, лӯлаи беҳтарини CI/CD, феҳристи контейнер ва ҳама чизҳои ба ин монанд. Ман то ҳол бо барномае дучор наомадаам, ки барои идоракунии ҷараёни рушди шумо ин қадар зиёд пешниҳод мекунад.

Ман автоматизатсияро дӯст медорам, аз ин рӯ ман фаҳмидам, ки чӣ гуна пайваст кардани Pantheon ба GitLab, то ки ӯҳдадориҳо ба филиали асосии GitLab ба муҳити асосии рушд дар Pantheon ҷойгир карда шаванд. Ва якҷоя кардани дархостҳо дар GitLab метавонад кодро дар муҳити multidev дар Pantheon эҷод ва ҷойгир кунад.

Дар ин дастур, ман ба шумо мефаҳмонам, ки чӣ гуна пайвастшавӣ байни GitLab ва Pantheon барқарор карда, ҷараёни кории WordPress ва Drupal-и худро оптимизатсия кунед.

Албатта мумкин, анбори оинаи GitLab, аммо мо ҳама чизро бо дастони худ мекунем, то онро фаҳмем GitLab CI ва дар оянда ин воситаро на танҳо барои ҷойгиркунӣ истифода баред.

Муқаддима

Барои ин паём, шумо бояд фаҳмед, ки Pantheon ҳар як сайтро ба се унсур тақсим мекунад: код, пойгоҳи додаҳо ва файлҳо.

Рамз дорои файлҳои CMS ба монанди асосии WordPress, плагинҳо ва мавзӯъҳо мебошад. Ин файлҳо дар Анбори Git, ки аз ҷониби Pantheon ҷойгир шудааст, маънои онро дорад, ки мо метавонем кодро аз GitLab ба Pantheon бо Git ҷойгир кунем.
Файлҳо дар Pantheon файлҳои медиавӣ, яъне тасвирҳо барои сайт мебошанд. Одатан, онҳо аз ҷониби корбарон бор карда мешаванд ва Git онҳоро нодида мегирад.

Ҳисоби ройгон эҷод кунед, маълумоти бештар дар бораи Ҷараёни кори Pantheon ё барои намоиши номнавис шавед дар pantheon.io.

Тахминхо

Лоиҳаи ман дар Pantheon ва GitLab номида мешавад pantheon-gitlab-blog-demo. Номи лоиҳа бояд беназир бошад. Дар ин ҷо мо бо як сайти WordPress кор хоҳем кард. Шумо метавонед Drupal гиред, аммо шумо бояд баъзе чизҳоро тағир диҳед.

истифода хохам бурд Сатри фармони Gitва шумо метавонед дар он кор кунед интерфейси графикӣ, Агар Шумо хоҳед.

Лоиҳа эҷод кунед

Аввалан, биёед эҷод кунем Лоиҳаи GitLab (мо ба ин баъдтар бармегардем).

Акнун сохтани вебсайти WordPress дар Pantheon. Сипас мо WordPress-ро барои панели сайт насб мекунем.

Агар дастҳои шумо барои тағир додани чизе хориш кунанд, масалан, плагинҳоро хориҷ кунед ё илова кунед, сабр кунед. Сайт ҳанӯз ба GitLab пайваст нашудааст ва мо мехоҳем, ки ҳама тағиротҳои код тавассути GitLab гузаранд.

Пас аз насб кардани WordPress, ба панели панели вебсайти Pantheon баргардед ва ҳолати таҳияро ба Git иваз кунед.

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress

Ухдадории ибтидоӣ дар GitLab

Ҳоло шумо бояд рамзи ибтидоии WordPress-ро аз сайти Pantheon ба GitLab интиқол диҳед. Барои ин, мо кодро аз анбори Git сайти Pantheon ба таври маҳаллӣ клон мекунем ва сипас онро ба анбори GitLab мефиристем.

Барои осонтар ва бехатартар кардани он, ба Pantheon калиди SSH илова кунед ва мо набояд ҳар дафъае, ки анбори Pantheon Git-ро клон кунем, парол ворид кунем. Дар айни замон аллакай ба GitLab калиди SSH илова кунед.

Барои ин кор, вебсайти Pantheon-ро ба таври маҳаллӣ бо нусхабардории фармон аз майдони Clone бо Git дар панели идоракунӣ клон кунед.

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress
Агар ба шумо кӯмак лозим бошад, ҳуҷҷатҳоро хонед оғоз бо Git барои Pantheon.

Акнун биёед тағир диҳем git remote originба ҷои Pantheon ба GitLab ишора кунед. Инро кардан мумкин аст командой git remote.

Биёед ба лоиҳаи GitLab равем ва URL-и анборро аз афтанда Clone дар саҳифаи тафсилоти лоиҳа нусхабардорӣ кунем. Биёед опсияи Clone бо SSH-ро интихоб кунем, зеро мо аллакай калиди SSH-ро танзим кардаем.

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress

бо пешфарз git remote барои нусхаи маҳаллии анбори код - origin. Инро тағир додан мумкин аст в git remote set-url origin [URL репозитория GitLab], ки дар он ҷо ба ҷои қавс мо URL-и воқеиро ворид мекунем.

Ниҳоят, мо оғоз мекунем git push origin master --forceбарои тела додани рамзи WordPress аз Pantheon ба GitLab.

Опсияи -force танҳо як маротиба лозим аст. Баъд дар дастаҳо git push он дар GitLab нахоҳад буд.

Танзими эътимодномаҳо ва тағирёбандаҳо

Дар хотир доред, ки чӣ гуна мо барои ворид шудан ба Pantheon ва GitLab калиди SSH-ро ба таври маҳаллӣ илова кардем? Токени SSH метавонад барои иҷозати GitLab ва Pantheon истифода шавад.

GitLab дорои ҳуҷҷатҳои аъло. Биёед мебинем қисмат оид ба калидҳои SSH ҳангоми истифодаи иҷрокунандаи Docker дар ҳуҷҷат оид ба истифодаи калидҳои SSH бо GitLab CI/CD.

Ҳоло мо ду қадами аввалро анҷом медиҳем: Биёед як ҷуфт калиди нави SSH-ро ба таври маҳаллӣ бо ssh-keygen эҷод кунем ва калиди хусусиро ҳамчун тағирёбанда ба лоиҳа илова кунем.

Баъд мепурсем 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 иҷро мекунем илова кардани калиди SSH ба Pantheon ва ин қадамро иҷро кунед.

Дар хотир доред: SSH хусусӣ дар GitLab, SSH кушода дар Pantheon аст.

Биёед якчанд тағирёбандаи муҳити атрофро танзим кунем. Якум PANTHEON_SITE номида мешавад. Арзиши он номи сайти Pantheon дар мошини шумост.

Номи мошин дар охири фармони Clone бо Git оварда шудааст. Шумо аллакай сайтро ба таври маҳаллӣ клон кардаед, бинобар ин ин номи феҳристи анбори маҳаллӣ хоҳад буд.

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress

Сипас, биёед тағирёбандаи муҳити атрофро танзим кунем PANTHEON_GIT_URL. Ин URL-и анбори Git барои сайти Pantheon аст, ки мо аллакай истифода кардаем.

Танҳо URL-и анбори SSH-ро ворид кунед, бе 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, ки дар он шумо метавонед муҳити иловагии Pantheon барои филиалҳои Git мувофиқи дархост эҷод кунед.

Дастрасӣ ба multidev маҳдуд аст, бинобар ин, ин бахшро партофтан мумкин аст. Аммо агар шумо дастрасӣ дошта бошед, шумо метавонед тавассути эҷоди худкори муҳитҳои multidev дар Pantheon аз дархостҳои GitLab якҷоя кардани GitLab маҳсулнокӣ ба таври ҷиддӣ афзоиш диҳед.

Аввалан, биёед филиали нави 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, танҳо филиал ба Пантеон фиристода мешавад, на ба 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

Инак, риштаи нав ба Пантеон фиристода шудааст. Аммо агар мо ба бахши multidev дар панели сайти Pantheon равем, мо муҳити навро дар он ҷо намебинем

Чӣ тавр пайваст кардани 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. Агар мо тасвири муҳити кушодро пахш кунем, мо ба URL-и муҳити multidev дар Pantheon бурда мешавем.

Эҷоди multidev автоматӣ кунед

Аслан, шумо метавонед дар ин ҷо таваққуф кунед ва танҳо фаромӯш накунед, ки барои ҳар як дархости якҷоякунӣ муҳити multidev эҷод кунед, аммо ин равандро автоматӣ кардан мумкин аст.

Pantheon дорои асбоби сатри фармон мебошад Terminus, ки дар он шумо метавонед бо платформа ба таври худкор кор кунед. Терминус ба шумо имкон медиҳад, ки аз сатри фармон муҳитҳои multidev эҷод кунед - беҳтарин барои GitLab CI.

Барои санҷидани ин ба мо дархости нави якҷоякунӣ лозим аст. Биёед бо истифода аз филиали нав эҷод кунем git checkout -b auto-multidev-creation.

Барои истифодаи Terminus дар вазифаҳои GitLab CI/CD, ба шумо аломати мошин барои аутентификатсия бо Terminus ва тасвири контейнерӣ бо Terminus лозим аст.

Эҷоди як аломати мошини Pantheon, онро дар ҷои бехатар захира кунед ва онро ҳамчун тағирёбандаи муҳити глобалӣ дар GitLab бо ном илова кунед PANTHEON_MACHINE_TOKEN.

Агар шумо чӣ гуна илова кардани тағирёбандаҳои муҳити GitLab-ро фаромӯш карда бошед, ба он ҷое, ки мо муайян кардем, баргардед PANTHEON_SITE.

Эҷоди файли докер бо Терминус

Агар шумо Docker-ро истифода набаред ё файлҳоро дӯст надоред Dockerfile, тасвири маро гиред registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest ва ин бахшро гузаред.

GitLab феҳристи контейнер дорад, ки мо метавонем Dockerfile-ро барои лоиҳаи худ созем ва ҷойгир кунем. Биёед бо Terminus Dockerfile эҷод кунем, то бо Pantheon кор кунем.

Терминус як абзори сатри фармони PHP аст, аз ин рӯ биёед бо тасвири PHP оғоз кунем. Ман Terminus-ро тавассути Composer насб мекунам, аз ин рӯ истифода хоҳам кард тасвири расмии 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 иҷозат намедиҳад. Мо барои мантиқи мултипликатори худ скрипт дорем. Биёед ҳоло бахшро навсозӣ кунем 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 метавонад чанд дақиқа вақт гирад.

Пас аз он мо ба рӯйхати мултипликатори Пантеон назар мекунем. Эй мӯъҷиза! Муҳити multidev mr-2 аллакай дар ин ҷо.

Чӣ тавр пайваст кардани GitLab ва Pantheon ва оптимизатсияи ҷараёни кории Drupal ва WordPress

хулоса

Вақте ки мо кушодани дархостҳои якҷоякунӣ ва эҷоди муҳитҳоро ба таври худкор оғоз кардем, дастаи ман хеле шавқовартар буд.

Бо асбобҳои пурқуввати GitLab ва Pantheon, шумо метавонед GitLab-ро ба Pantheon ба таври худкор пайваст кунед.

Азбаски мо GitLab CI/CD-ро истифода мебарем, ҷараёни кори мо барои афзоиш ҷой хоҳад дошт. Инҳоянд чанд идея барои оғоз кардани шумо:

  • Қадами сохтмонро илова кунед.
  • Илова кардани санҷиши автоматӣ.
  • Барои таъмини риояи стандартҳои код супориш илова кунед.
  • Илова кунед санҷиши амнияти барнома динамикӣ.

Ба мо бигӯед, ки шумо дар бораи GitLab, Pantheon ва автоматизатсия чӣ фикр доред.

PS Оё шумо медонед, ки Terminus, асбоби сатри фармони Pantheon, тавассути плагинҳо васеъ кардан мумкин аст?

Мо дар Pantheon дар версияи 2-и худ кори хуб кардем плагин барои асбобҳои сохтани Terminus бо дастгирии GitLab. Агар шумо нахоҳед, ки бо танзимоти ҳар як лоиҳа ташвиш кашед, ин плагинро санҷед ва ба мо дар озмоиши бета v2 кӯмак кунед. Барои дастаи Терминус build:project:create Ба шумо танҳо аломати Pantheon ва аломати GitLab лозим аст. Вай яке аз лоиҳаҳои намунавиро бо Composer ва санҷиши автоматикунонидашуда татбиқ мекунад, дар GitLab, як сайти нави Pantheon лоиҳаи нав эҷод мекунад ва онҳоро бо истифода аз тағирёбандаҳои муҳити зист ва калидҳои SSH пайваст мекунад.

Дар бораи муаллиф

Эндрю Тейлор асбобҳоро барои таҳиягарон дар Pantheon.

Манбаъ: will.com

Илова Эзоҳ