Aaladaha soo-saare martidayada ee Pantheon wuxuu ka hadlayaa sida otomaatig loogu sameeyo geynta WordPress iyadoo la adeegsanayo GitLab CI/CD.
Π Pantheon Waxaan ka shaqeeyaa cilaaqaadka horumariyaha, marka waxaan had iyo jeer raadiyaa habab cusub oo aan ku caawiyo WordPress iyo horumariyeyaasha Drupal inay xalliyaan mashaakilaadka automation-ka ee socodkooda shaqo. Si tan loo sameeyo, waxaan jeclahay in aan tijaabiyo qalab cusub oo aan isku daro midba midka kale si aan si hufan ugu shaqeeyo.
Waxaan inta badan arkaa horumariyayaal la halgamaya hal server.
Aad bay ugu faraxsan tahay inaad sugto wakhtigaaga si aad u isticmaasho server dhexdhexaad ah ama u soo dir macaamiisha URL qoraal ah: "Halkan eeg, laakiin weli ha eegin halkan."
Deegaannada Multidev - mid ka mid ah qalabka Pantheon ee qabow - wuxuu xalliyaa dhibaatadan, sababtoo ah iyaga waxaad u abuuri kartaa jawiyo laamaha Git ee baahida. Deegaan kasta oo multidev ah wuxuu leeyahay URL u gaar ah iyo xogta xogta, si horumariyayaashu ay u shaqayn karaan si aamusnaan ah, hubinaya tayada, oo ay heli karaan oggolaansho iyaga oo aan ku tallaabsan midba midka kale lugihiisa.
Laakiin Pantheon ma haysto qalab loogu talagalay xakamaynta nooca ama is-dhexgalka joogtada ah iyo geynta (CI/CD). Laakiin waa madal dabacsan oo aad ku dhex dari karto qalab kasta.
Waxa kale oo aan ogaaday in kooxuhu ay u isticmaalaan qalabyada qaarkood horumarinta, iyo kuwo kala duwan oo loogu talagalay isu-ururinta iyo geynta.
Tusaale ahaan, waxay haystaan ββqalab kala duwan oo loogu talagalay xakamaynta nooca iyo CI/CD. Waa inaad dhexda u gasho oo aad u kala beddeshaa qalabka si aad u saxdo koodka oo aad u ogaato dhibaatooyinka.
In GitLab Waxaa jira qalab horumarineed oo buuxa: kantaroolka nooca, tigidhada, codsiyada isku-dhafka, tuubada CI/CD ee ugu heerka wanaagsan, diiwaanka weelka, iyo wax kasta oo la mid ah. Wali ma aanan la kulmin arji bixiya wax badan oo lagu maareeyo socodka shaqadaada horumarineed.
Waxaan jeclahay automation-ka, sidaa darteed waxaan bartay sida loogu xiro Pantheon iyo GitLab si ay u go'aansato laanta ugu weyn ee GitLab in la geeyo deegaanka horumarka ugu weyn ee Pantheon. Iyo isku darka codsiyada GitLab waxay abuuri kartaa oo geyn kartaa koodka deegaanka badan ee Pantheon.
Casharradan, waxaan kugu dhex socon doonaa sida loo sameeyo xidhiidh ka dhexeeya GitLab iyo Pantheon oo aan u wanaajiyo socodkaaga shaqada ee WordPress iyo Drupal.
Dabcan waa suurtogal, muraayadda GitLab kaydka, laakiin wax walba waxaan ku samayn doonaa gacmaheena si aan u dhex galno GitLab CI mustaqbalkana u isticmaal qalabkan oo kaliya ma aha in la geeyo.
Horudhac
Boostada, waxaad u baahan tahay inaad fahamto in Pantheon uu u kala jabiyo goob kasta saddex walxood: kood, xog ururin, iyo faylal.
Koodhka waxaa ku jira faylalka CMS sida WordPress core, plugins, iyo mawduucyada. Faylashan waxaa lagu maamulaa gudaha Git bakhaarada, uu martigeliyay Pantheon, taasoo la macno ah inaan geyn karno koodka GitLab ilaa Pantheon oo wata Git.
Faylasha ku jira Pantheon waa faylal warbaahineed, taas oo ah, sawirada goobta. Caadi ahaan waxaa soo geliya isticmaalayaasha Gitna wuu iska indhatiraa.
Haddii gacmahaagu ay cuncunayaan si ay wax u beddelaan, tusaale ahaan, ka saar ama ku daraan plugins, dulqaado. Goobtu wali kuma xidhna GitLab, waxaanan rabnaa in dhammaan isbeddellada koodka ay maraan GitLab.
Marka aan rakibno WordPress, ku noqo bogga Pantheon dashboardka oo u beddel habka horumarinta Git.
Ballanqaadka ugu horreeya ee GitLab
Hadda waxaad u baahan tahay inaad ka wareejiso koodhka hore ee WordPress ka goobta Pantheon una wareejiso GitLab. Si tan loo sameeyo, waxaan ka xireynaa koodka keydka Git ee goobta Pantheon gudaha, ka dibna waxaan u direynaa keydka GitLab.
Hadda aan beddelno git remote originSi aad u tilmaanto GitLab halkii Pantheon. Waa la samayn karaa ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote.
Aan tagno mashruuca GitLab oo aan koobiyeeyo URL-ka kaydka ah ee hoos u dhaca Clone ee bogga faahfaahinta mashruuca. Aynu doorano Clone oo leh ikhtiyaarka SSH, sababtoo ah waxaan mar hore habaysannay furaha SSH.
by default git remote nuqul maxalli ah oo ah kaydka koodka - origin. Tan waa la bedeli karaa c git remote set-url origin [URL ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitLab], halkaas oo beddelka biraha aan galno URL-ka dhabta ah.
Ugu dambeyntii, waxaan bilaabi git push origin master --forcesi aad u riixdo koodhka WordPress ee Pantheon ilaa GitLab.
Xulashada xoogga ayaa loo baahan yahay hal mar oo keliya. Kadibna koox ahaan git push kuma jiri doonto GitLab.
Dejinta aqoonsiga iyo doorsoomayaasha
Xusuusnow sida aan ugu darnay furaha SSH gudaha si aan u galno Pantheon iyo GitLab? Calaamadda SSH waxaa loo isticmaali karaa in lagu oggolaado GitLab iyo Pantheon.
Waxa aan marka hore ku samayn doono GitLab CI waxay aad ula mid tahay wixii aan ku samaynay kaydka Git ee la soo dhaafay. Laakiin markan waxaan ku dari doonaa kaydka Pantheon sidii il labaad oo Git ah oo fog, ka dibna koodka ka riix GitLab una dir Pantheon.
Si tan loo sameeyo, aynu habaynno Marxaladdeploy ΠΈ hawldeploy:dev, sababtoo ah waxaan u diri doonaa deegaanka horumarinta ee Pantheon. Faylka soo baxay .gitlab-ci.yml sidan oo kale:
Kala duwanaansho SSH_PRIVATE_KEY, PANTHEON_SITE ΠΈ PANTHEON_GIT_URL Waa inay u ekaato mid la yaqaan - waxaynu hore u dejinay doorsoomayaasha deegaanka. Doorsoomayaashan waxaan awood u yeelan doonnaa inaan isticmaalno qiyamka faylka .gitlab-ci.yml marar badan, waxayna u baahan doonaan oo kaliya in lagu cusboonaysiiyo hal meel.
Ugu dambeyntii, ku dar, samee oo dir faylka .gitlab-ci.yml ku yaal GitLab.
Hubinta geynta
Haddii aan wax walba si sax ah u samaynay, hawsha deploy:dev wuxuu si guul leh ugu socon doonaa GitLab CI/CD wuxuuna soo gudbin doonaa ballan .gitlab-ci.yml ee Pantheon. Aan eegno.
U diraya taxanaha codsiga isku dhafka Pantheon
Halkan waxaan ku isticmaali doonaa qaabka Pantheon-ka aan jeclahay - multidev, halkaas oo aad ka abuuri karto deegaan Pantheon dheeraad ah laamaha Git ee baahida.
Helitaanka multidev waa xadidan tahay, markaa qaybtan waa la dhaafi karaa. Laakiin haddii aad marin u leedahay, waxaad si dhab ah u kordhin kartaa wax soo saarka adiga oo si toos ah u dejinaya abuurista jawiga badan ee Pantheon ee codsiyada isku darka GitLab.
Marka hore aynu samayno laan cusub oo Git ah gudaha annagoo adeegsanayna git checkout -b multidev-support. Hadda aan mar kale wax ku beddelno gudaha .gitlab-ci.yml.
Waxaan jeclahay in aan ku daro lambarka codsiga isku darka magaca deegaanka Pantheon. Tusaale ahaan, codsiga isku darka ugu horreeya waa mr-1, labaad - mr-2 iwm.
Codsiga isku-dhafka ayaa isbedelaya, marka waxaan u baahanahay inaan si firfircoon u go'aamino magacyada laanta Pantheon. Way ku fududahay GitLab - kaliya waxaad u baahan tahay inaad isticmaasho doorsoomayaasha deegaanka ee hore loo qeexay.
Waan qaadan karnaa $CI_MERGE_REQUEST_IIDsi loo qeexo lambarka codsiga isku darka. Aynu ku dabaqno waxaas oo dhan iyada oo ay la socoto doorsoomayaasha deegaanka ee caalamiga ah ee aan horay u soo sheegnay oo aan ku darno geyn cusub: hawsha multitidev dhamaadka faylka .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
Waxay la mid noqon doontaa hawshayada deploy:dev, kaliya laanta ayaa loo diraa Pantheon, looma diro master.
Waxaanu ku darnay oo aanu galnay faylka la cusboonaysiiyay .gitlab-ci.yml, oo hadda aan ku riixno laan cusub GitLab leh git push -u origin multidev-support.
Hadda aynu ka abuurno codsi cusub oo ku biirista laanta multidev-supportadigoo gujinaya Abuur codsi isku darka.
Fiiri, dun cusub ayaa loo diray Pantheon. Laakiin haddii aan tagno qaybta multidev ee bogga Pantheon dashboard, ma arki doonno jawiga cusub ee halkaas.
Aynu eegno qaybta Git Branches.
Natiijo ahaan, dunteena mr-1 waxay tagtay Pantheon. Aan deegaan ka abuurno laan mr-1.
Waxaan abuurnay jawi multidev ah, hadda aan ku noqonno GitLab oo aan eegno qaybta Hawlgallada > Deegaanka. Waxaan arki doonaa gelida loogu talagalay dev ΠΈ mr-1.
Tani waa sababta oo ah waxaan ku darnay gelitaan environment Magac leh name ΠΈ url galay hawlaha CI/CD. Haddii aan gujino astaanta jawiga furan, waxaa naloo geyn doonaa URL-ka deegaanka multidev ee Pantheon.
Si otomaatig ah u samee abuurista multidev
Mabda 'ahaan, waxaad ku joojin kartaa halkan oo kaliya xusuusnow inaad abuurto jawi multidev codsi kasta oo isku-dhafka ah, laakiin habkan si toos ah ayaa loo samayn karaa.
Pantheon wuxuu leeyahay aaladda khadka taliska terminus, halkaas oo aad si toos ah ula shaqayn karto madal. Terminus wuxuu kuu ogolaanayaa inaad ka abuurto deegaan multidev khadka taliska - ku habboon GitLab CI.
Waxaan u baahanahay codsi cusub oo isku darka si loo tijaabiyo tan. Aan abuurno laan cusub anagoo adeegsanayna git checkout -b auto-multidev-creation.
Si aad u isticmaasho Terminus gudaha GitLab CI/CD, waxaad u baahan tahay calaamada mishiinka si loogu xaqiijiyo Terminus iyo sawirka weelka leh Terminus.
Abuuritaanka Pantheon Machine Token, ku keydi meel nabdoon oo ku dar sida doorsoomayaasha deegaanka ee GitLab oo leh magaca PANTHEON_MACHINE_TOKEN.
Haddii aad illowday sida loogu daro doorsoomayaasha deegaanka GitLab, ku noqo halka aan ku qeexnay PANTHEON_SITE.
Abuuritaanka Dockerfile leh Terminus
Haddii aadan isticmaalin Docker ama aadan jeclayn faylasha Dockerfile, sawirkeyga qaado registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest oo ka bood qaybtan.
GitLab waxay leedahay diiwaan weel, halkaas oo aan ka dhisi karno oo aan ku dhejin karno Dockerfile ee mashruucayaga. Aan abuurno Dockerfile leh Terminus si aan ula shaqeyno Pantheon.
Terminus waa aaladda khadka taliska PHP, markaa aan ku bilowno sawirka PHP. Waxaan ku rakibayaa Terminus iyada oo loo marayo laxamiistaha, markaa waan isticmaali doonaa Sawirka Laxamiistaha rasmiga ah ee Docker. Waxaan abuurnaa Dockerfile ku jira tusaha kaydka deegaanka oo leh nuxurka soo socda:
# 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"
Raac tilmaamaha isku xirka iyo dirida sawirada qaybta Dhis oo riix sawirada Π² dukumentiyada diiwaanka weelkasi ay sawir uga soo ururiyaan Dockerfile oo u riix GitLab.
Furitaanka qaybta Diiwaangelinta ee mashruuca GitLab. Haddii wax walba u dhaceen sidii qorshuhu ahaa, sawirkayagu wuu jiri doonaa. Qor xiriirinta sawirka sawirka - waxaan u baahanahay faylka .gitlab-ci.yml.
Qaybta script dhibaatada deploy:multidev wuxuu bilaabayaa inuu koro, markaa aan u guurno fayl gaar ah. Samee fayl cusub 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
Qoraalku wuxuu ku yaalaa hage gaar ah iyo ma ogola in la galo Pantheon. Waxaan u haynaa qoraal macquul ah multidev. Aynu hadda cusboonaysiinno qaybta deploy:multidev fayl .gitlab-ci.ymlsi ay u noqoto sidan:
Waxaan u baahanahay inaan hubinno in hawlaheenna lagu fuliyay sawirka gaarka ah ee la abuuray, markaa waxaan ku dari doonnaa qeexitaan image laga bilaabo URL diiwaanka ilaa .gitlab-ci.yml. Natiijo ahaan, waxaan ku dhameynay faylka sidan oo kale ah .gitlab-ci.yml:
Ku dar, ballan oo dir private/multidev-deploy.sh ΠΈ .gitlab-ci.yml. Hadda waxaan ku laabanaa GitLab oo aan sugayna hawsha CI/CD inay dhammayso. Samir samee: multidev waxay qaadan kartaa dhowr daqiiqo si ay u abuurto.
Markaa waxaan eegnaa liiska multidev ee Pantheon. Alla mucjiso! Deegaanka Multidev mr-2 mar hore halkan.
gunaanad
Kooxdaydu waxay lahayd madadaalo badan markii aan bilownay furitaanka codsiyada isku darka iyo abuurista jawi si toos ah.
Aaladaha xoogga badan ee GitLab iyo Pantheon, waxaad si toos ah ugu xidhi kartaa GitLab Pantheon.
Maadaama aan isticmaalno GitLab CI/CD, socodka shaqadeenu wuxuu yeelan doonaa meel uu ku koro. Halkan waxaa ah dhowr fikradood oo aad ku bilaabi karto:
Ku dar tallaabo dhis
Ku dar imtixaan otomaatig ah
Ku dar hawl si aad u hubiso in heerarka kood la buuxiyey.