
Labhraíonn ár n-aoi, cruthaitheoir uirlisí forbróra Pantheon, faoi conas imscaradh a uathoibriú. WordPress ag baint úsáide as GitLab CI/CD.
В Oibrím i gcaidreamh forbróirí, mar sin bíonn mé i gcónaí ag lorg bealaí nua chun cabhrú le forbróirí. WordPress и Drupal Fadhbanna uathoibrithe i sreafaí oibre a réiteach. Chun seo a dhéanamh, is breá liom triail a bhaint as uirlisí nua agus iad a chomhcheangal chun éifeachtúlacht níos fearr a bhaint amach.
Is minic a fheicim forbróirí ag streachailt le freastalaí stáitse amháin.
Is mór an pléisiúr é fanacht le do sheal chun freastalaí idirmheánach a úsáid nó URL a sheoladh chuig cliaint leis an nóta: “Féach anseo, ach ná bí ag breathnú anseo go fóill.”
- ceann de na huirlisí Pantheon fionnuar - réitíonn an fhadhb seo, mar leo is féidir leat timpeallachtaí a chruthú do bhrainsí Git ar éileamh. Tá a URL agus a bhunachar sonraí féin ag gach timpeallacht multidev, ionas gur féidir le forbróirí oibriú go ciúin, cáilíocht a sheiceáil, agus formheas a fháil gan dul ar bharra a chéile.
Ach níl uirlisí ag Pantheon chun leagan a rialú ná comhtháthú agus imscaradh leanúnach (CI/CD). Ach is ardán solúbtha é inar féidir leat aon uirlisí a chomhtháthú.
Thug mé faoi deara freisin go n-úsáideann foirne uirlisí áirithe le haghaidh forbartha, agus cinn éagsúla le haghaidh tionól agus imscaradh.
Mar shampla, tá uirlisí éagsúla acu chun leagan a rialú agus CI/CD. Caithfidh tú fidil timpeall agus aistriú idir uirlisí chun cód a chur in eagar agus fadhbanna a dhiagnóisiú.
Ar tá sraith iomlán uirlisí forbartha ann: maidir le rialú leagan, ticéid, iarratais chumaisc, píblíne CI/CD is fearr sa rang, clár coimeádán, agus gach rud mar sin. Níor tháinig mé trasna ar fheidhmchlár a thairgeann an oiread sin chun do shreabhadh oibre forbartha a bhainistiú.
Is breá liom uathoibriú, agus mar sin d'fhoghlaim mé conas Pantheon a nascadh le GitLab ionas go n-imscarfar gealltanais chuig an bpríomhbhrainse ar GitLab chuig an bpríomhthimpeallacht forbartha i Pantheon. Agus is féidir le hiarratais chumasc ar GitLab cód a chruthú agus a imscaradh chuig timpeallachtaí multidev i Pantheon.
Sa treoir seo, taispeánfaidh mé duit conas nasc a bhunú idir GitLab agus Pantheon agus do shreabhadh oibre a bharrfheabhsú. WordPress и Drupal.
Ar ndóigh is féidir, , ach déanfaimid gach rud lenár lámha chun dul isteach ann agus sa todhchaí bain úsáid as an uirlis seo, ní hamháin le haghaidh imscaradh.
Réamhrá
Don phost seo, ní mór duit a thuiscint go ndéanann Pantheon gach suíomh a bhriseadh síos i dtrí ghné: cód, bunachar sonraí agus comhaid.
Áirítear leis an gcód comhaid CMS amhail an croílár, breiseáin agus téamaí. WordPressDéantar na comhaid seo a bhainistiú i , arna óstáil ag Pantheon, rud a chiallaíonn gur féidir linn cód a imscaradh ó GitLab go Pantheon le Git.
Is comhaid meán iad comhaid i Pantheon, is é sin, íomhánna don láithreán. Go hiondúil déanann úsáideoirí iad a uaslódáil agus déanann Git neamhaird orthu.
, tuilleadh eolais a fháil faoi nó ag pantheon.io.
Toimhdí
Tugtar mo thionscadal ar Pantheon agus GitLab pantheon-gitlab-blog-demoCaithfidh ainm an tionscadail a bheith uathúil. Beidh suíomh gréasáin á úsáid againn anseo. WordPressIs féidir leat é a thógáil freisin Drupal, ach beidh gá le roinnt rudaí a athrú.
úsáidfidh mé agus is féidir leat oibriú i , más maith leat.
Cruthaigh tionscadal
Gcéad dul síos, a ligean ar a chruthú (tiocfaimid ar ais chuige seo níos déanaí).
Anois Ansin suiteálaimid é. WordPress don phainéal gréasáin.
Má tá tochas ar do lámha rud éigin a athrú, mar shampla, forlíontáin a bhaint nó a chur leis, bí foighneach. Níl an suíomh ceangailte go fóill le GitLab, agus ba mhaith linn gach athrú cód dul trí GitLab.
Cathain a shuiteálfaimid é? WordPress, fill ar phainéal gréasáin an Pantheon agus athraigh an modh forbartha go Git.
Tiomantas tosaigh ar GitLab
Anois ní mór duit an cód tosaigh a aistriú WordPress Ó shuíomh gréasáin Pantheon go GitLab. Chun seo a dhéanamh, clónálaimid an cód ó stór Git shuíomh gréasáin Pantheon go háitiúil agus ansin brúimid chuig stór GitLab é.
Chun é a dhéanamh níos éasca agus níos sábháilte, agus ní bheidh orainn pasfhocal a chur isteach gach uair a dhéanaimid clónáil ar stór Pantheon Git. Ag an am céanna cheana féin .
Chun seo a dhéanamh, clónáil suíomh Gréasáin Pantheon go háitiúil tríd an ordú a chóipeáil ón réimse Clón le Git ar phainéal an láithreáin ghréasáin.
Má tá cabhair uait, léigh an doiciméadú .
Anois a ligean ar athrú git remote origina chur in iúl do GitLab in ionad Pantheon. Is féidir é a dhéanamh .
A ligean ar dul go dtí an tionscadal GitLab agus cóip an URL stór ón anuas Clón ar an leathanach sonraí an tionscadail. Déanaimis an rogha Clón le SSH a roghnú, toisc go bhfuil an eochair SSH cumraithe againn cheana féin.
De réir réamhshocraithe git remote le haghaidh cóip áitiúil den stór cóid - origin. Is féidir é seo a athrú c git remote set-url origin [URL репозитория GitLab], áit a gcuirimid an URL iarbhír isteach in ionad lúibíní.
Ar deireadh, táimid ag seoladh git push origin master --forcean cód a sheoladh WordPress ó shuíomh Pantheon ar GitLab.
Níl an rogha fórsa ag teastáil ach uair amháin. Ansin i bhfoirne
git pushní bheidh sé ar GitLab.
Dintiúir agus athróga a shocrú
Cuimhnigh conas a chuireamar eochair SSH leis go háitiúil chun logáil isteach ar Pantheon agus GitLab? Is féidir an comhartha SSH a úsáid chun GitLab agus Pantheon a údarú.
Tá doiciméadú den scoth ag GitLab. Ligean ar a fheiceáil .
Cuirfimid an chéad dá chéim i gcrích anois: Cruthaimis péire nua eochracha SSH go háitiúil le ssh-keygen agus cuirfimid an eochair phríobháideach mar athróg leis an tionscadal.
Ansin iarrfaimid SSH_PRIVATE_KEY как i socruithe an tionscadail.
Sa tríú agus sa cheathrú céim cruthóimid comhad .gitlab-ci.yml le hábhar mar seo:
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"Ná déanaimis an comhad a cheangal go fóill .gitlab-ci.yml, ansin beidh ort rud éigin eile a chur leis.
Anois déanaimid an cúigiú céim agus cuir an eochair phoiblí a chruthaigh tú sa chéad chéim leis na seirbhísí a bhfuil rochtain ag teastáil uait sa timpeallacht thógála.
Inár gcás, ba mhaith linn rochtain a fháil ar Pantheon ó GitLab. Leanaimid na treoracha sa doiciméad Pantheon ar agus an chéim seo a dhéanamh.
Cuimhnigh: tá SSH príobháideach i GitLab, tá SSH oscailte i Pantheon.
Déanaimis cúpla athróg timpeallachta eile a bhunú. PANTHEON_SITE a thugtar ar an gcéad cheann. Is é a luach ná ainm shuíomh Pantheon ar do mheaisín.
Tá an t-ainm ar an meaisín liostaithe ag deireadh an ordaithe Clón le Git. Tá an suíomh clónáilte agat go háitiúil cheana féin, mar sin is é seo an t-ainm a bheidh ar an eolaire stórtha áitiúil.
Ansin, déanaimis an athróg timpeallachta a bhunú PANTHEON_GIT_URL. Is é seo an URL stór Git don suíomh Pantheon atá in úsáid againn cheana féin.
Cuir isteach ach an URL stór SSH, gan
git cloneagus ainm an tsuímh ar an meaisín ag an deireadh.
Phew. Sin déanta, anois is féidir linn ár gcomhad a chríochnú .gitlab-ci.yml.
Cruthaigh tasc imscaradh
Tá an méid a bheidh á dhéanamh againn ar dtús le GitLab CI an-chosúil leis an méid a rinneamar le stórtha Git san am atá caite. Ach an uair seo, cuirimis an stór Pantheon mar an dara foinse iargúlta Git, agus ansin an cód a bhrú ó GitLab go Pantheon.
Chun seo a dhéanamh, déanaimis a chumrú deploy и deploy:dev, toisc go mbeidh muid imscaradh chuig an timpeallacht forbartha ar Pantheon. An comhad mar thoradh air .gitlab-ci.yml cosúil leis seo:
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:
- masterAthróga SSH_PRIVATE_KEY, PANTHEON_SITE и PANTHEON_GIT_URL Ba chóir breathnú ar an eolas - bhunaigh muid na hathróga timpeallachta seo níos luaithe. Leis na hathróga seo beimid in ann na luachanna sa chomhad a úsáid .gitlab-ci.yml go leor uaireanta, agus ní gá iad a nuashonrú ach in aon áit amháin.
Ar deireadh, cuir leis, tiomnaigh agus seol an comhad .gitlab-ci.yml ar GitLab.
Ag seiceáil an imscaradh
Má rinne muid gach rud i gceart, an tasc deploy:dev reáchtálfar go rathúil i GitLab CI/CD agus cuirfidh siad gealltanas isteach .gitlab-ci.yml ag Pantheon. A ligean ar a fháil breathnú.
Snáitheanna iarratais chumaisc á seoladh chuig Pantheon
Anseo úsáidfimid an ghné Pantheon is fearr liom - , áit ar féidir leat timpeallachtaí Pantheon breise a chruthú do bhrainsí Git ar éileamh.
, ionas gur féidir an chuid seo a scipeáil. Ach má tá rochtain agat, is féidir leat táirgiúlacht a mhéadú go mór trí chruthú uathoibríoch timpeallachtaí multidev a bhunú ar iarratais chumaisc Pantheon ó GitLab.
Ar dtús déanaimis brainse nua Git a úsáid go háitiúil git checkout -b multidev-support. Anois, déanaimis rud éigin a athrú arís i .gitlab-ci.yml.
Is maith liom an uimhir iarratais chumaisc a chur san ainm timpeallacht Pantheon. Mar shampla, is é an chéad iarratas cumaisc mr-1, dara - mr-2 srl.
Athraíonn an t-iarratas cumaisc, mar sin ní mór dúinn ainmneacha brainse Pantheon a chinneadh go dinimiciúil. Tá sé éasca ar GitLab - ní gá duit ach é a úsáid .
Is féidir linn a ghlacadh $CI_MERGE_REQUEST_IIDchun uimhir an iarratais chumaisc a shonrú. Cuirfimid é seo go léir i bhfeidhm mar aon leis na hathróga timpeallachta domhanda a shonraigh muid níos luaithe agus cuirfimid tasc imscaradh:multidev nua ag deireadh an chomhaid .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_requestsBeidh sé cosúil leis an tasc atá againn deploy:dev, ní sheoltar ach an brainse go Pantheon, ní chuig master.
Tá an comhad nuashonraithe curtha leis agus geallta againn .gitlab-ci.yml, agus anois déanaimis brainse nua a bhrú chuig GitLab leis git push -u origin multidev-support.
Anois cruthaimis iarratas cumaisc nua ón mbrainse multidev-supportag brú Cruthaigh iarratas cumaisc.
Tar éis iarratas cumaisc a chruthú, féachaimid ar an gcaoi a gcuirtear an tasc CI/CD i gcrích deploy:multidev.
Féach, tá snáithe nua seolta chuig Pantheon. Ach má théimid go dtí an rannóg multidev ar phainéal suímh Pantheon, ní fheicfimid an timpeallacht nua ann
Breathnaímid ar an rannóg Git Branches.
Mar thoradh air sin, ár snáithe mr-1 fuair Pantheon. Cruthaímid timpeallacht ó bhrainse mr-1.
Tá timpeallacht multidev cruthaithe againn, anois déanaimis dul ar ais go GitLab agus breathnú ar an alt Oibríochtaí > Timpeallachtaí. Feicfimid iontrálacha le haghaidh dev и mr-1.
Tá sé seo toisc gur chuireamar iontráil leis environment Le hainm name и url isteach i dtascanna CI/CD. Má chliceálann muid ar an deilbhín timpeallachta oscailte, tógfar muid chuig URL na timpeallachta multidev ar Pantheon.
Cruthú multidev a uathoibriú
I bprionsabal, is féidir leat stop a chur anseo agus gan ach cuimhnigh timpeallacht multidev a chruthú do gach iarratas cumaisc, ach is féidir an próiseas seo a uathoibriú.
Tá uirlis líne ordaithe ag Pantheon , áit ar féidir leat oibriú leis an ardán go huathoibríoch. Ceadaíonn Terminus duit timpeallachtaí multidev a chruthú ón líne ordaithe - iontach do .
Teastaíonn iarratas cumaisc nua uainn chun é seo a thástáil. A ligean ar a chruthú brainse nua ag baint úsáide as git checkout -b auto-multidev-creation.
Chun Terminus a úsáid i dtascanna GitLab CI/CD, beidh comhartha meaisín uait le haghaidh fíordheimhnithe le Terminus agus íomhá coimeádán le Terminus.
, é a shábháil in áit shábháilte agus cuir leis mar athróg timpeallachta domhanda i GitLab leis an ainm PANTHEON_MACHINE_TOKEN.
Má rinne tú dearmad ar conas athróga timpeallachta GitLab a chur leis, téigh ar ais go dtí an áit a shainmhínigh muid
PANTHEON_SITE.
Dockerfile a chruthú le Terminus
Mura n-úsáideann tú Docker nó mura dtaitníonn comhaid leat Dockerfile, tóg mo íomhá registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest agus skip an chuid seo.
, áit ar féidir linn an Dockerfile a thógáil agus a chur ar ár dtionscadal. Cruthaímid Dockerfile le Terminus chun oibriú le Pantheon.
Is uirlis líne ordaithe PHP é Terminus, mar sin cuirimis tús leis an íomhá PHP. Tá Terminus á shuiteáil agam trí Cumadóir, mar sin úsáidfidh mé . Cruthaímid Dockerfile san eolaire stór áitiúil leis an ábhar seo a leanas:
# 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"Lean na treoracha maidir le híomhánna a chur le chéile agus a sheoladh ón rannán Tóg agus brúigh íomhánna в chun íomhá a bhailiú ó Dockerfile agus é a bhrú go GitLab.
Ag oscailt an rannáin clárlann sa tionscadal GitLab. Má chuaigh gach rud de réir an phlean, beidh ár n-íomhá ann. Scríobh síos nasc chuig an gclib íomhá - ní mór dúinn é don chomhad .gitlab-ci.yml.
Roinn script san fhadhb deploy:multidev ag fás, mar sin a ligean ar é a aistriú chuig comhad ar leith. Cruthaigh comhad nua 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..."
fiTá an script in eolaire príobháideach agus . Tá script againn dár loighic multidev. Déanaimis an rannán a nuashonrú anois deploy:multidev comhad .gitlab-ci.ymlionas go dtarlaíonn sé mar seo:
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_requestsNí mór dúinn a chinntiú go gcomhlíontar ár dtascanna san íomhá saincheaptha cruthaithe, mar sin cuirimis sainmhíniú leis image ó URL na clárlainne go .gitlab-ci.yml. Mar thoradh air sin, chríochnaigh muid suas le comhad mar seo .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_requestsCuir leis, tiomnaigh agus seol private/multidev-deploy.sh и .gitlab-ci.yml. Fillimid ar GitLab anois agus fanaimid leis an tasc CI/CD a chur i gcrích. Bí foighneach: féadann multidev roinnt nóiméad a ghlacadh lena chruthú.
Ansin féachaimid ar an liosta multidev ar Pantheon. Ó míorúilt! Timpeallacht multidev mr-2 cheana féin anseo.
Conclúid
Bhí i bhfad níos mó spraoi ag mo fhoireann nuair a thosaigh muid ag oscailt iarratais chumaisc agus ag cruthú timpeallachtaí go huathoibríoch.
Le huirlisí cumhachtacha GitLab agus Pantheon, is féidir leat GitLab a nascadh le Pantheon go huathoibríoch.
Ós rud é go n-úsáidimid GitLab CI/CD, beidh spás inár sreabhadh oibre le fás. Seo cúpla smaoineamh chun tú a chur ar bun:
- Cuir céim thógála leis.
- Cuir tástáil uathoibrithe leis.
- Cuir tasc leis lena chinntiú go gcomhlíontar caighdeáin chóid.
- Cuir leis .
Cuir in iúl dúinn cad a cheapann tú faoi GitLab, Pantheon agus uathoibriú.
PS An raibh a fhios agat go bhfuil Terminus, uirlis líne ordaithe Pantheon, ?
Tá jab maith déanta againn ag Pantheon ar leagan 2 dár le tacaíocht GitLab. Mura bhfuil tú ag iarraidh bac a chur ar na socruithe do gach tionscadal, bain triail as an mbreiseán seo agus cuidigh linn an v2 beta a thástáil. Don fhoireann Terminus build:project:create Níl uait ach comhartha Pantheon agus comhartha GitLab. Imscarfaidh sí ceann de na tionscadail shamplacha le Cumadóir agus le tástáil uathoibrithe, cruthóidh sí tionscadal nua i GitLab, suíomh nua Pantheon, agus nascfaidh sí iad ag baint úsáide as athróga timpeallachta agus eochracha SSH.
Maidir leis an údar
Cruthaíonn Andrew Taylor uirlisí d’fhorbróirí i .
Foinse: will.com
