ProHoster > Blog > fitantanan-draharaha > Ahoana ny fampifandraisana ny GitLab sy Pantheon ary manatsara ny Drupal sy WordPress Workflows
Ahoana ny fampifandraisana ny GitLab sy Pantheon ary manatsara ny Drupal sy WordPress Workflows
Ny mpamorona fitaovana mpamorona vahiny ao amin'ny Pantheon dia miresaka momba ny fomba automatique ny fametrahana WordPress amin'ny alΓ lan'ny GitLab CI/CD.
Π Pantheon Miasa amin'ny fifandraisana amin'ny mpamorona aho, noho izany dia mitady fomba vaovao foana aho hanampiana ireo mpamorona WordPress sy Drupal hamaha ny olan'ny automatique amin'ny rindranasany. Mba hanaovana izany, tiako ny manandrana fitaovana vaovao ary manambatra azy ireo mba hiasa tsara.
Matetika aho no mahita mpivoatra miady amin'ny mpizara fandaharana tokana.
Tena mahafinaritra ny miandry ny anjaranao hampiasa mpizara mpanelanelana na mandefa URL amin'ny mpanjifa misy fanamarihana hoe: "Jereo eto, fa aza mijery eto."
Tontolo iainana Multidev - iray amin'ireo fitaovana Pantheon mahafinaritra - mamaha ity olana ity, satria miaraka amin'izy ireo ianao dia afaka mamorona tontolo ho an'ny sampana Git raha ilaina. Ny tontolon'ny multidev tsirairay dia manana URL sy angon-drakitra manokana, mba hahafahan'ny mpamorona miasa mangina, manamarina ny kalitao ary mahazo fankatoavana nefa tsy mifanitsaka.
Saingy tsy manana fitaovana ho an'ny fanaraha-maso ny dikan-teny na ny fampidirana mitohy sy ny fametrahana (CI/CD) i Pantheon. Izy io anefa dia sehatra mora azo ampiasaina izay ahafahanao mampiditra fitaovana rehetra.
Hitako ihany koa fa ny ekipa dia mampiasa fitaovana sasany ho an'ny fampandrosoana, ary samy hafa amin'ny fivoriambe sy ny fametrahana.
Ohatra, manana fitaovana samihafa izy ireo amin'ny fanaraha-maso ny dikan-teny sy CI/CD. Tsy maintsy mandehandeha manodidina ianao ary mifamadika eo amin'ny fitaovana hanitsiana kaody sy hamantarana olana.
amin'ny GitLab misy fitaovana fampivoarana feno: ho an'ny fanaraha-maso ny dikan-teny, tapakila, fangatahana fanakambanana, fantsona CI/CD tsara indrindra ao amin'ny kilasy, rejisitra kaontenera, sy ny toy izany. Mbola tsy nahita rindranasa manolotra betsaka hitantana ny rindranasan'ny fampandrosoana anao aho.
Tiako ny automatique, noho izany dia nianatra ny fomba hampifandray an'i Pantheon amin'ny GitLab aho mba hapetraka amin'ny sampana lehibe ao amin'ny GitLab amin'ny tontolo fampandrosoana lehibe ao Pantheon. Ary ny fangatahana manambatra ao amin'ny GitLab dia afaka mamorona sy mametraka kaody amin'ny tontolo multidev ao Pantheon.
Amin'ity lesona ity, dia handeha aho amin'ny fomba fametrahana fifandraisana eo amin'ny GitLab sy Pantheon ary manatsara ny workflow WordPress sy Drupal.
Mazava ho azy fa azo atao, fitaratra GitLab repository, fa hanao ny zavatra rehetra amin'ny tananay izahay mba handalina GitLab CI ary amin'ny ho avy dia ampiasao ity fitaovana ity fa tsy amin'ny fametrahana fotsiny.
fampidirana
Ho an'ity lahatsoratra ity, mila mahatakatra ianao fa ny Pantheon dia manapaka ny tranokala tsirairay ho singa telo: code, database, ary rakitra.
Ny kaody dia misy rakitra CMS toy ny WordPress core, plugins, ary lohahevitra. Mitantana ao amin'ny Git repository, nampiantranoin'ny Pantheon, midika izany fa afaka mametraka kaody avy amin'ny GitLab mankany Pantheon miaraka amin'i Git isika.
Ny rakitra ao amin'ny Pantheon dia rakitra media, izany hoe, sary ho an'ny tranokala. Matetika izy ireo dia ampidirin'ny mpampiasa ary tsy miraharaha azy ireo i Git.
Ny tetikasako amin'ny Pantheon sy GitLab dia antsoina pantheon-gitlab-blog-demo. Tsy maintsy miavaka ny anaran'ny tetikasa. Eto isika dia hiasa amin'ny tranokala WordPress. Azonao atao ny maka Drupal, saingy mila manova zavatra sasany ianao.
Raha mangidihidy hanova zavatra ny tananao, ohatra, manala na manampy plugins dia mahareta. Mbola tsy mifandray amin'ny GitLab ny tranokala, ary tianay ny hanova ny kaody rehetra amin'ny GitLab.
Rehefa mametraka WordPress izahay dia miverena any amin'ny dashboard tranokalan'ny Pantheon ary ovao ho Git ny fomba fampandrosoana.
Fanoloran-tena voalohany amin'ny GitLab
Ankehitriny dia mila mamindra ny kaody WordPress voalohany avy amin'ny tranokala Pantheon mankany GitLab ianao. Mba hanaovana izany, dia clone ny kaody avy amin'ny tahiry Git an'ny tranokala Pantheon eo an-toerana, ary avy eo mandefa azy any amin'ny tahiry GitLab.
Mba hanaovana izany, clone ny tranokala Pantheon eo an-toerana amin'ny alΓ lan'ny kopia ny baiko avy amin'ny saha Clone miaraka amin'ny Git ao amin'ny dashboard tranokala.
Ny safidy -force dia ilaina indray mandeha ihany. Avy eo amin'ny ekipa git push tsy ho ao amin'ny GitLab izany.
Fametrahana ny fahazoan-dΓ lana sy ny variables
Tsarovy ny fomba nampidiranay fanalahidy SSH teo an-toerana mba hidirana ao amin'ny Pantheon sy GitLab? Ny mari-pamantarana SSH dia azo ampiasaina hanomezana alalana ny GitLab sy Pantheon.
Hamita ny dingana roa voalohany isika izao: Andao hamorona mpivady fanalahidy SSH vaovao eo an-toerana miaraka amin'ny ssh-keygen ary ampio ny lakile manokana ho fari-piadidiana amin'ny tetikasa.
Dia hanontany isika SSH_PRIVATE_KEY Ahoana no GitLab CI/CD environment variable ao amin'ny firafitry ny tetikasa.
Amin'ny dingana fahatelo sy fahefatra dia hamorona rakitra isika .gitlab-ci.yml miaraka amin'ny atiny toy izao:
Aoka isika tsy hanolo-tena ny rakitra .gitlab-ci.yml, dia mila manampy zavatra hafa amin'izany ianao.
Ankehitriny dia manao ny dingana fahadimy isika ary ampio ny fanalahidin'ny daholobe noforoninao tamin'ny dingana voalohany amin'ireo serivisy ilainao idirana amin'ny tontolo fananganana.
Amin'ity tranga ity, te-hiditra amin'ny Pantheon avy amin'ny GitLab izahay. Araho ny toromarika ao amin'ny antontan-taratasy Pantheon on manampy fanalahidy SSH amin'ny Pantheon ary tanteraho ity dingana ity.
Tsarovy: ao amin'ny GitLab ny SSH manokana, ao amin'ny Pantheon ny SSH misokatra.
Andeha isika hanangana fari-piainana vitsivitsy hafa. Ny voalohany dia antsoina hoe PANTHEON_SITE. Ny sandany dia ny anaran'ny tranokala Pantheon amin'ny milinanao.
Ny anarana amin'ny milina dia voatanisa eo amin'ny faran'ny Clone miaraka amin'ny baiko Git. Efa nanao clone ny tranokala teo an-toerana ianao, ka ity no anaran'ny lahatahiry fitehirizana eo an-toerana.
Manaraka, andeha apetraka ny fari-piainan'ny tontolo iainana PANTHEON_GIT_URL. Ity no URL fitehirizana Git ho an'ny tranokala Pantheon izay efa nampiasainay.
Ampidiro ihany ny URL SSH repository, tsy misy git clone ary ny anaran'ny tranokala amin'ny milina amin'ny farany.
Phew. Vita izany, afaka mamita ny rakitray izahay .gitlab-ci.yml.
Mamorona asa fametrahana
Ny zavatra hataontsika voalohany amin'ny GitLab CI dia mitovy amin'ny nataonay tamin'ny tahiry Git taloha. Fa amin'ity indray mitoraka ity, andao ampio ny tahiry Pantheon ho loharano Git lavitra faharoa, ary avy eo manosika ny code avy amin'ny GitLab mankany Pantheon.
Mba hanaovana izany, andao ny configure sehatradeploy ΠΈ ASAdeploy:dev, satria haparitaka amin'ny tontolo fampandrosoana ao amin'ny Pantheon izahay. Ny rakitra vokarina .gitlab-ci.yml dia ho toy izao:
hiovaova SSH_PRIVATE_KEY, PANTHEON_SITE ΠΈ PANTHEON_GIT_URL tokony ho mahazatra - nametraka ireo fari-piainan'ny tontolo iainana ireo izahay teo aloha. Miaraka amin'ireo fari-pahalalana ireo dia ho afaka hampiasa ny soatoavina ao anaty rakitra isika .gitlab-ci.yml imbetsaka, ary amin'ny toerana iray ihany no mila havaozina.
Farany, ampio, manolora ary alefaso ny rakitra .gitlab-ci.yml amin'ny GitLab.
Fanamarinana ny fametrahana
Raha nanao ny zava-drehetra araka ny tokony ho, ny asa deploy:dev dia handeha soa aman-tsara ao amin'ny GitLab CI/CD ary handefa commit .gitlab-ci.yml ao amin'ny Pantheon. Andeha hojerentsika.
Eto isika dia hampiasa ny endri-javatra Pantheon tiako indrindra β multidev, izay ahafahanao mamorona tontolo Pantheon fanampiny ho an'ny sampana Git raha ilaina.
Ny fidirana amin'ny multidev dia voafetra, ka azo tsidihana ity fizarana ity. Fa raha manana fidirana ianao dia afaka mampitombo ny vokatra amin'ny alΓ lan'ny fananganana automatique ny tontolo multidev ao amin'ny Pantheon avy amin'ny fangatahana merge GitLab.
Tiako ny mampiditra ny laharan'ny fangatahana fanakambanana amin'ny anaran'ny tontolo manodidina ny Pantheon. Ohatra, ny fangatahana fampiraisana voalohany dia mr-1, faharoa - mr-2 Sns
Miova ny fangatahana fampiraisana, noho izany dia mila mamaritra ny anaran'ny sampana Pantheon isika. Mora amin'ny GitLab - mila mampiasa fotsiny ianao fari-piainana voafaritra mialoha.
Rehefa avy namorona fangatahana fampiraisana isika dia mijery ny fomba fanatanterahana ny asa CI/CD deploy:multidev.
Jereo fa nisy kofehy vaovao nalefa tany Pantheon. Fa raha mankany amin'ny fizarana multidev ao amin'ny dashboard tranokala Pantheon isika dia tsy hahita ny tontolo vaovao ao.
Namorona tontolo iainana multidev izahay, andao hiverina any amin'ny GitLab ary hijery ilay fizarana Operations > Tontolo iainana. Ho hitantsika ny fidirana ho an'ny dev ΠΈ mr-1.
Izany dia satria nampiditra fidirana izahay environment Miaraka amin'ny anarany name ΠΈ url amin'ny asa CI/CD. Raha manindry ny kisary tontolo iainana misokatra isika dia hoentina any amin'ny URL an'ny tontolo multidev ao amin'ny Pantheon.
Ataovy ho azy ny famoronana multidev
Amin'ny ankapobeny, afaka mijanona eto ianao ary tadidio fotsiny ny hamorona tontolo multidev ho an'ny fangatahana fampiraisana tsirairay, fa ity dingana ity dia azo automatique.
Pantheon dia manana fitaovana andalana baiko gara farany, izay ahafahanao miasa miaraka amin'ny sehatra ho azy. Terminus dia ahafahanao mamorona tontolo multidev avy amin'ny baiko baiko - mety tsara ho an'ny GitLab CI.
Raha hampiasa ny Terminus amin'ny asa GitLab CI/CD dia mila mari-pamantarana ho an'ny fanamarinana miaraka amin'i Terminus sy sary fitoeran-javatra misy Terminus ianao.
Mamorona ny Pantheon Machine Token, tehirizo ao amin'ny toerana azo antoka ary ampio ho toy ny fari-piainana manerantany ao amin'ny GitLab miaraka amin'ny anarana PANTHEON_MACHINE_TOKEN.
Raha adinonao ny fomba hanampiana ny fari-piainan'ny GitLab dia miverena any amin'izay nofaritanay PANTHEON_SITE.
Mamorona Dockerfile miaraka amin'ny Terminus
Raha tsy mampiasa Docker ianao na tsy tia rakitra Dockerfile, alaivo ny sariko registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest ary tsidiho ity fizarana ity.
GitLab dia manana rejisitra fitahirizana, izay ahafahantsika manangana sy mametraka ny Dockerfile ho an'ny tetikasantsika. Andao hamorona Dockerfile miaraka amin'ny Terminus hiasa amin'ny Pantheon.
Ny Terminus dia fitaovan'ny baikon'ny PHP, ka andao hanomboka amin'ny sary PHP. Mametraka Terminus amin'ny alΓ lan'ny Composer aho, ka hampiasaiko sary ofisialy Docker Composer. Mamorona isika Dockerfile ao amin'ny lahatahiry fitahirizana eo an-toerana miaraka amin'ireto atiny manaraka ireto:
# 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"
Araho ny torolΓ lana momba ny fanangonana sy fandefasana sary avy amin'ny fizarana Manangana sy manosika sary Π² antontan-taratasy fisoratana anarana containerhanangona sary avy amin'ny Dockerfile ary manosika azy mankany GitLab.
Sokafy ny fizarana lisitra ao amin'ny tetikasa GitLab. Raha nandeha araka ny drafitra ny zava-drehetra dia ho eo ny sarintsika. Manorata rohy mankany amin'ny mari-pamantarana sary - ilaintsika ho an'ny rakitra .gitlab-ci.yml.
#!/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
Ny script dia ao amin'ny lahatahiry manokana ary tsy mamela ny fidirana amin'ny tranonkala amin'ny Pantheon. Manana script ho an'ny lojika multidev izahay. Andeha isika hanavao ny fizarana deploy:multidev rakitra .gitlab-ci.ymlka dia toy izao no miseho:
Mila maka antoka isika fa ny asantsika dia vita amin'ny sary namboarina noforonina, koa andao asiana famaritana image avy amin'ny URL rejisitra mankany .gitlab-ci.yml. Vokatr'izany dia nahazo rakitra tahaka izao izahay .gitlab-ci.yml:
Ampio, manolora ary alefaso private/multidev-deploy.sh ΠΈ .gitlab-ci.yml. Miverina any GitLab isika izao ary miandry ny asa CI/CD ho vita. Mahareta: afaka maka minitra maromaro ny multidev vao mamorona.
Avy eo isika dia mijery ny lisitry ny multidev ao amin'ny Pantheon. Fahagagana Γ΄! Multidev tontolo iainana mr-2 efa eto.
famaranana
Nahafinaritra kokoa ny ekipako rehefa nanomboka nanokatra fangatahana fanakambanana sy namorona tontolo ho azy izahay.
Miaraka amin'ny fitaovana mahery an'ny GitLab sy Pantheon, azonao atao ny mampifandray an'i GitLab amin'ny Pantheon ho azy.
Izahay ato amin'ny Pantheon dia nanao asa tsara tamin'ny version 2 an'ny anay plugin ho an'ny fitaovana fananganana Terminus miaraka amin'ny fanohanana GitLab. Raha tsy te hanahirana anao amin'ny fikandrana ho an'ny tetikasa tsirairay ianao, andramo ity plugin ity ary ampio izahay hizaha ny v2 beta. Ho an'ny ekipa Terminus build:project:create Ny marika Pantheon sy ny marika GitLab ihany no ilainao. Hametraka ny iray amin'ireo tetikasa santionany miaraka amin'ny Composer sy fitiliana mandeha ho azy izy, hamorona tetikasa vaovao ao amin'ny GitLab, tranokala Pantheon vaovao, ary hampifandray azy ireo amin'ny fampiasana ny fari-piainan'ny tontolo iainana sy ny fanalahidy SSH.
Momba ny mpanoratra
Andrew Taylor dia mamorona fitaovana ho an'ny mpamorona ao Pantheon.