ProHoster > Blog > Pulega > Faʻafefea ona faʻafesoʻotaʻi GitLab ma Pantheon ma faʻaleleia le Drupal ma le WordPress Workflows
Faʻafefea ona faʻafesoʻotaʻi GitLab ma Pantheon ma faʻaleleia le Drupal ma le WordPress Workflows
O le matou tagata faʻapitoa faʻapitoa mea faigaluega i Pantheon talanoa e uiga i le faʻaogaina o le faʻaogaina o WordPress e faʻaaoga ai le GitLab CI / CD.
В Pantheon Ou te galue i le atinaʻeina o fesoʻotaʻiga, o lea o loʻo ou sailia pea ni auala fou e fesoasoani ai i le WordPress ma Drupal developers e foia faʻafitauli otometi i a latou galuega. Ina ia faia lenei mea, ou te fiafia e faʻataʻitaʻi i mea faigaluega fou ma tuʻufaʻatasia ma le tasi ma le isi e galue lelei.
E masani ona ou vaʻai i le au atinaʻe o loʻo tauivi ma se 'auʻaunaga faʻatulagaina e tasi.
O se fiafiaga le faʻatali mo lou taimi e faʻaaoga ai se 'auʻaunaga vavalalata pe lafo atu i tagata faʻatau se URL ma le faʻamatalaga: "Vaai iinei, ae aua le tilotilo iinei."
Si'osi'omaga teledev - o se tasi o mea manaia Pantheon - foia lenei faafitauli, aua oi latou e mafai ona e fatuina siosiomaga mo lala Git pe a manaʻomia. O si'osi'omaga multidev ta'itasi e iai lana URL ma fa'amaumauga, ina ia mafai e tagata atia'e ona galulue filemu, siaki lelei, ma maua le fa'atagaga e aunoa ma le la'a i tamatama'ivae o le tasi.
Ae Pantheon e leai ni mea faigaluega mo le faʻatonutonuina o faʻamatalaga poʻo le faʻaauauina o le tuʻufaʻatasia ma le faʻapipiʻiina (CI/CD). Ae o se tulaga fetuutuunai e mafai ona e tuʻufaʻatasia soʻo se meafaigaluega.
Na ou matauina foi o 'au e faʻaaoga nisi meafaigaluega mo le atinaʻe, ma eseese mo le faʻapotopotoga ma le faʻapipiʻiina.
Mo se faʻataʻitaʻiga, e iai a latou meafaigaluega eseese mo le faʻatonutonuina o faʻamatalaga ma le CI / CD. E tatau ona e taamilo solo ma fesuiai i le va o meafaigaluega e faʻasaʻo ai le code ma faʻamaonia faafitauli.
i GitLab o loʻo i ai se seti atoa o meafaigaluega faʻaleleia: mo le faʻatonutonuina o faʻasalalauga, tiketi, tuʻufaʻatasia talosaga, se paipa CI / CD sili ona lelei, se resitala o pusa, ma mea uma faapena. Ou te le'i o'o lava i se talosaga e ofoina atu le tele o mea e fa'atautaia ai lau su'ega galuega.
Ou te fiafia i le masini, o lea na ou aʻoaʻoina ai pe faʻafefea ona faʻafesoʻotaʻi Pantheon i GitLab ina ia tuʻuina atu i le lala autu i GitLab e faʻapipiʻiina i le atinaʻe autu o le siosiomaga i Pantheon. Ma tuʻufaʻatasia talosaga ile GitLab e mafai ona fatuina ma faʻapipiʻi code i multidev siosiomaga i Pantheon.
I lenei aʻoaʻoga, o le a ou taʻitaʻia oe ile auala e faʻapipiʻi ai se fesoʻotaʻiga i le va o GitLab ma Pantheon ma faʻamalieina lau galuega galue WordPress ma Drupal.
Ioe e mafai, fa'ata GitLab faleoloa, ae o le a tatou faia mea uma i o tatou lima e suʻesuʻe ai GitLab CI ma i le lumanaʻi faʻaaoga lenei meafaigaluega e le gata mo le faʻapipiʻiina.
Faatomuaga
Mo lenei pou, e tatau ona e malamalama o Pantheon e talepeina nofoaga taʻitasi i lalo i elemene e tolu: code, database, ma faila.
O le tulafono e aofia ai faila CMS e pei ole WordPress core, plugins, ma autu. O faila nei e pulea i totonu Git faleoloa, faʻafeiloaʻi e Pantheon, o lona uiga e mafai ona matou faʻapipiʻi le code mai GitLab i Pantheon ma Git.
O faila i Pantheon o faila faʻasalalau, o lona uiga, ata mo le saite. E masani lava ona faʻapipiʻiina e tagata faʻaoga ma e le amanaʻia e Git.
O laʻu poloketi i Pantheon ma GitLab ua taʻua pantheon-gitlab-blog-demo. E tatau ona tulaga ese le igoa o le poloketi. O iinei o le a matou galulue ai ma se WordPress site. E mafai ona e ave Drupal, ae e manaʻomia le suia o nisi mea.
Afai e maʻi ou lima e sui se mea, mo se faʻataʻitaʻiga, aveese pe faʻaopoopo plugins, ia onosai. O le saite e leʻi fesoʻotaʻi i GitLab, ma matou te manaʻo e faʻaoga uma suiga code i GitLab.
O le taimi lava matou te faʻapipiʻi ai le WordPress, toe foʻi i le laupepa o le upega tafaʻilagi a Pantheon ma sui le faiga faʻaleleia i Git.
Ta'utinoga muamua ile GitLab
Ole taimi nei e te manaʻomia le tuʻuina atu o le uluai code WordPress mai le Pantheon site ile GitLab. Ina ia faia lenei mea, matou te faʻapipiʻi le code mai le Git repository o le Pantheon site i le lotoifale, ona auina atu lea i le GitLab repository.
Ina ia faia lenei mea, faʻapipiʻi le upega tafaʻilagi a Pantheon i le lotoifale e ala i le kopiina o le poloaiga mai le Clone ma le Git fanua i luga o le upega tafaʻilagi dashboard.
Ia tatou sui nei git remote origine tusi i GitLab nai lo Pantheon. E mafai ona fai командой git remote.
Sei o tatou i le poloketi GitLab ma kopi le URL o le teu oloa mai le Clone dropdown i luga o le itulau auiliiliga o galuega. Sei o tatou filifili le Clone ma le SSH filifiliga, aua ua uma ona tatou faʻatulagaina le SSH ki.
e faaletonu git remote mo se kopi faʻapitonuʻu o le faʻamaumauga code - origin. E mafai ona suia lea i git remote set-url origin [URL репозитория GitLab], lea nai lo puipui tatou te ulufale i le URL moni.
Mulimuli ane, matou te tatalaina git push origin master --forcee tulei le code WordPress mai Pantheon i GitLab.
Ole filifiliga -force e na'o le tasi e mana'omia. Ona sosoo ai lea ma 'au git push e le o iai ile GitLab.
Fa'atulagaina o fa'amaoniga ma fesuiaiga
Manatua pe faʻafefea ona matou faʻaopoopoina se SSH ki i le lotoifale e ulufale ai i Pantheon ma GitLab? E mafai ona fa'aoga le fa'ailoga SSH e fa'atagaina ai GitLab ma Pantheon.
O le a matou faʻamaeʻaina nei laasaga muamua e lua: Sei o tatou fatuina se pa'aga SSH fou i le lotoifale ma ssh-keygen ma faʻaopopo le ki faʻapitoa e fai ma fesuiaiga i le poloketi.
Ona tatou fesili atu lea SSH_PRIVATE_KEY auala GitLab CI/CD siosiomaga fesuiaiga i le fa'atulagaina o galuega.
I le laasaga lona tolu ma le fa o le a matou fatuina se faila .gitlab-ci.yml ma mea e pei o lenei:
Se'i tatou le tu'uina atu le faila .gitlab-ci.yml, ona e manaʻomia lea e faʻaopoopo i ai se isi mea.
O lea tatou te faia le laasaga lona lima ma fa'aopoopo le ki fa'alilolilo na e faia i le laasaga muamua i au'aunaga e te mana'omia le avanoa i totonu o le siosiomaga faufale.
I la matou tulaga, matou te fia maua Pantheon mai GitLab. Matou te mulimuli i faʻatonuga i le Pantheon pepa i luga fa'aopoopo se ki SSH i Pantheon ma fai lenei laasaga.
Manatua: SSH tumaoti o loʻo i GitLab, tatala SSH i Pantheon.
Se'i o tatou fa'atutuina ni nai si'osi'omaga fesuisuia'i. O le mea muamua e ta'ua PANTHEON_SITE. O lona tau o le igoa o le Pantheon site i lau masini.
O le igoa i luga o le masini o loʻo lisiina i le pito o le Clone ma le Git command. Ua uma ona e kopiina le saite i le lotoifale, o le a avea lea ma igoa o le lisi o fale teu oloa.
Sosoo ai, se'i o tatou seti le fesuiaiga o le siosiomaga PANTHEON_GIT_URL. O le Git repository URL mo le Pantheon site ua uma ona matou faʻaogaina.
Ulufale na'o le SSH repository URL, e aunoa ma git clone ma le igoa ole nofoaga i luga ole masini ile pito.
Fiu. Ua uma lena, ua mafai nei ona faauma la tatou faila .gitlab-ci.yml.
Fausia se galuega fa'apipi'i
O le mea o le a matou faia muamua ma GitLab CI e talitutusa lava ma mea na matou faia i Git repositories i aso ua tuanaʻi. Ae o le taimi lenei, seʻi o tatou faʻaopopo le faleteuoloa Pantheon e avea ma punaoa lona lua Git mamao, ona tulei lea o le code mai GitLab i Pantheon.
Ina ia faia lenei mea, seʻi o tatou configure tulagadeploy и galuegadeploy:dev, aua o le a matou faʻapipiʻiina i le atinaʻe siosiomaga i Pantheon. Le faila faila .gitlab-ci.yml o le a pei o lenei:
Fesuiaʻiga SSH_PRIVATE_KEY, PANTHEON_SITE и PANTHEON_GIT_URL e tatau ona foliga masani - matou te setiina nei suiga o le siosiomaga muamua. Faatasi ai ma nei fesuiaiga o le a mafai ai ona matou faʻaogaina tau i le faila .gitlab-ci.yml i le tele o taimi, ma e na o le tasi le nofoaga e manaʻomia ona faʻafouina.
Mulimuli ane, faʻaopoopo, taʻutino ma lafo le faila .gitlab-ci.yml luga ole GitLab.
Siaki le fa'apipi'iina
Afai tatou te faia mea uma sa'o, o le galuega deploy:dev o le a tamoʻe manuia i GitLab CI/CD ma tuʻuina atu se tautinoga .gitlab-ci.yml i Pantheon. Se'i tatou va'ai.
Tuuina atu o filo talosaga tu'ufa'atasi i Pantheon
O iinei o le a matou faʻaogaina ai laʻu mea e sili ona ou fiafia i ai Pantheon − teledev, lea e mafai ai ona e fatuina ni siosiomaga Pantheon faaopoopo mo lala Git pe a manaʻomia.
Ole avanoa ile multidev e fa'atapula'aina, o lea e mafai ai ona faamisi lenei vaega. Ae afai e te maua le avanoa, e mafai ona e matua faʻateleina le gaosiga e ala i le faʻatulagaina otometi o siosiomaga multidev i Pantheon mai GitLab merge talosaga.
Muamua tatou faia se lala Git fou i le lotoifale e faʻaaoga git checkout -b multidev-support. Ia tatou toe sui se mea i totonu .gitlab-ci.yml.
Ou te fiafia e aofia ai le numera talosaga tuʻufaʻatasia i le igoa Pantheon environment. Mo se faʻataʻitaʻiga, o le talosaga tuʻufaʻatasia muamua o le mr-1, tulaga lua - mr-2 ma isi.
E suia le talosaga tu'ufa'atasi, o lea e mana'omia ai le fa'amaninoina o igoa o lala o Pantheon. E faigofie ile GitLab - na'o lou fa'aoga fesuia'i si'osi'omaga mua'i fa'avasegaina.
E mafai ona tatou ave $CI_MERGE_REQUEST_IIDe ta'u mai ai le numera talosaga tu'ufa'atasi. Sei o tatou faʻaogaina uma nei mea faʻatasi ai ma suiga o le siosiomaga o le lalolagi na matou faʻamaonia muamua ma faʻaopoopo se galuega fou: multidev galuega i le pito o le faila. .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
O le a tutusa ma la tatou galuega deploy:dev, na o le lala e auina atu i Pantheon, ae le o master.
Ua matou faʻaopoopoina ma tuʻuina atu le faila fou .gitlab-ci.yml, ma o lea tatou tuleia se lala fou i GitLab ma git push -u origin multidev-support.
Se'i o tatou faia se talosaga tu'ufa'atasi fou mai le lala multidev-supporti le kilikiina Fausia se talosaga tu'ufa'atasi.
I le faia o se talosaga tuʻufaʻatasia, matou te vaʻavaʻai pe faʻapefea ona faʻatinoina le galuega CI / CD deploy:multidev.
Va'ai, ua lafoina se filo fou i Pantheon. Ae afai tatou te o atu i le vaega multidev i luga o le upega tafaʻilagi a Pantheon dashboard, tatou te le vaʻaia le siosiomaga fou iina
Se'i o tatou va'ai ile vaega ole Git Branches.
O se taunuuga, o la matou filo mr-1 taunuu i Pantheon. Tatou fausia se siosiomaga mai se lala mr-1.
Ua matou fatuina se siosiomaga multidev, o lea tatou toe foi i GitLab ma tilotilo i le vaega Galuega > Si'osi'omaga. O le a tatou vaʻai i faʻamatalaga mo dev и mr-1.
E mafua ona ua matou fa'aopoopoina se fa'amatalaga environment Ma igoa name и url i galuega CI/CD. Afai tatou te kiliki i luga o le ata tatala siosiomaga, o le a ave i tatou i le URL o le siosiomaga multidev i Pantheon.
Otometi le fausiaina o multidev
I le faʻavae, e mafai ona e taofi iinei ma naʻo le manatua e fatuina se siosiomaga multidev mo talosaga tuʻufaʻatasia taʻitasi, ae o lenei faiga e mafai ona otometi.
Pantheon ei ai se meafaigaluega laina laina Faʻaiʻuga, lea e mafai ona e galue ai ma le tulaga otometi. Terminus e mafai ai ona e fatuina ni siosiomaga multidev mai le laina o le poloaiga - lelei mo GitLab CI.
Matou te manaʻomia se talosaga tuʻufaʻatasiga fou e suʻe ai lenei mea. Tatou faia se lala fou e faaaoga ai git checkout -b auto-multidev-creation.
Mo le faʻaogaina o Terminus i galuega GitLab CI / CD, e te manaʻomia se faʻailoga masini mo le faʻamaonia ma Terminus ma se ata atigipusa ma Terminus.
Fausia se Pantheon Machine Token, faʻasaoina i se nofoaga saogalemu ma faʻaopopo e avea o se fesuiaiga o le siosiomaga o le lalolagi i GitLab ma le igoa PANTHEON_MACHINE_TOKEN.
Afai na galo ia te oe le faʻaopoopoina o suiga ole siosiomaga GitLab, toe foʻi i le mea na matou faʻamatalaina PANTHEON_SITE.
Fausia se Dockerfile ma Terminus
Afai e te le faʻaaogaina Docker pe e te le fiafia i faila Dockerfile, ave lo'u ata registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest ma faamisi lenei vaega.
GitLab o loʻo i ai se resitala o pusa, lea e mafai ai ona tatou fausia ma tuu le Dockerfile mo la tatou galuega faatino. Sei o tatou fatuina se Dockerfile ma Terminus e galulue ai ma Pantheon.
O le Terminus o se meafaigaluega laina laina PHP, o lea tatou amata i le ata PHP. O loʻo ou faʻapipiʻi Terminus e ala i le Composer, o lea o le a ou faʻaaogaina ata aloaia Docker Composer. Tatou te fatuina Dockerfile i totonu o le faleteuoloa fa'apitonu'u fa'atasi ai ma mea nei:
# 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"
Mulimuli i faʻatonuga mo le faʻapipiʻiina ma le lafoina o ata mai le vaega Fausia ma tulei ata в pepa resitala o pusae ao mai se ata mai Dockerfile ma tulei i GitLab.
Tatala le vaega Resitala i le poloketi GitLab. Afai e alu mea uma e tusa ai ma le fuafuaga, o le a iai la tatou ata. Tusi i lalo se sootaga i le pine ata - matou te manaʻomia mo le faila .gitlab-ci.yml.
Fuaiupu script i le faafitauli deploy:multidev ua amata ona tupu, o lea sei o tatou siitia i se faila ese. Fausia se faila fou 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
O lo'o iai le fa'amatalaga i totonu o se lisi patino ma e le fa'atagaina le 'upega tafa'ilagi i Pantheon. E i ai le matou tusitusiga mo la matou multidev logic. Sei o tatou faafou le vaega deploy:multidev faila .gitlab-ci.ymlina ia foliga mai e faapea:
E manaʻomia ona tatou faʻamautinoa o loʻo faʻatinoina a tatou galuega i le ata masani na faia, o lea tatou faʻaopoopoina se faʻamatalaga image mai le resitala URL i .gitlab-ci.yml. O se taunuuga, na matou iu i se faila e pei o lenei .gitlab-ci.yml:
Faaopoopo, tautino ma auina atu private/multidev-deploy.sh и .gitlab-ci.yml. O lea matou te toe foʻi i GitLab ma faʻatali mo le galuega CI / CD e maeʻa. Ia onosai: multidev e mafai ona alu ni nai minute e fai ai.
Ona matou o ai lea e tilotilo i le lisi multidev i Pantheon. Oi vavega! Siosiomaga teledev mr-2 ua i ai iinei.
iʻuga
Na sili atu le fiafia o laʻu 'au ina ua amata ona matou tatalaina talosaga tuʻufaʻatasia ma faʻapipiʻi siʻosiʻomaga otometi.
Faatasi ai ma meafaigaluega mamana a GitLab ma Pantheon, e mafai ona e faʻafesoʻotaʻi GitLab i Pantheon aunoa.
Talu ai matou te fa'aogaina le GitLab CI/CD, o le a maua le avanoa e fa'atupula'ia ai a matou galuega. O nai manatu nei e te amata ai:
Fa'aopoopo se laasaga fau.
Fa'aopoopo su'ega otometi.
Fa'aopoopo se galuega e fa'amautinoa ua ausia tulaga fa'atulafonoina.
Matou i Pantheon ua faia se galuega lelei i luga o le version 2 o la matou faʻapipiʻi mo meafaigaluega faufale Terminus ma le lagolago a GitLab. Afai e te le manaʻo e faʻalavelave i faʻatulagaga mo poloketi taʻitasi, taumafai le plugin lea ma fesoasoani ia matou suʻeina le v2 beta. Mo le 'au a Terminus build:project:create E te manaʻomia naʻo se faʻailoga Pantheon ma se faʻailoga GitLab. O le a ia faʻapipiʻiina se tasi o faʻataʻitaʻiga faʻataʻitaʻiga faʻatasi ma le Composer ma suʻega otometi, faia se galuega fou i GitLab, se nofoaga fou Pantheon, ma faʻafesoʻotaʻi i latou e faʻaoga ai suiga o le siosiomaga ma SSH ki.
E uiga i le tusitala
Andrew Taylor e fatuina meafaigaluega mo tagata atiae i totonu Pantheon.