Momwe Mungalumikizire GitLab ndi Pantheon ndi Konzani Drupal ndi WordPress Workflows
Wopanga zida zathu za alendo ku Pantheon amalankhula zamomwe mungapangire ma WordPress deployments pogwiritsa ntchito GitLab CI/CD.
Π Pantheon Ndimagwira ntchito yolumikizana ndi omanga, ndiye nthawi zonse ndimayang'ana njira zatsopano zothandizira omanga a WordPress ndi Drupal kuthetsa mavuto odzipangira okha pamayendedwe awo. Kuti ndichite izi, ndimakonda kuyesa zida zatsopano ndikuziphatikiza wina ndi mzake kuti zigwire bwino ntchito.
Nthawi zambiri ndimawona opanga akulimbana ndi seva imodzi yokha.
Ndizosangalatsa kudikirira nthawi yanu yogwiritsa ntchito seva yapakatikati kapena kutumiza makasitomala ulalo wokhala ndi cholemba: "Yang'anani apa, koma osayang'ana panobe."
Multidev chilengedwe - chimodzi mwa zida zozizira za Pantheon - zimathetsa vutoli, chifukwa ndi iwo mukhoza kupanga mapangidwe a nthambi za Git pakufunika. Malo aliwonse a multidev ali ndi ulalo wake ndi nkhokwe yake, kotero opanga amatha kugwira ntchito mwakachetechete, kuyang'ana mtundu, ndikupeza chivomerezo popanda kupondana zala.
Koma Pantheon alibe zida kulamulira Baibulo kapena mosalekeza kusakanikirana ndi kutumiza (CI/CD). Koma ndi nsanja yosinthika yomwe mutha kuphatikiza zida zilizonse.
Ndidawonanso kuti magulu amagwiritsa ntchito zida zina zachitukuko, ndi zina zosiyanasiyana pakusonkhanitsa ndi kutumiza.
Mwachitsanzo, ali ndi zida zosiyanasiyana zowongolera mtundu ndi CI/CD. Muyenera kuyendayenda ndikusintha pakati pa zida kuti musinthe ma code ndikuzindikira zovuta.
pa GitLab pali zida zonse zachitukuko: zowongolera mtundu, matikiti, kuphatikiza zopempha, mapaipi apamwamba kwambiri a CI/CD, kaundula wa zidebe, ndi chilichonse chonga icho. Sindinapezebe pulogalamu yomwe imakupatsirani zambiri kuti muzitha kuyang'anira kayendetsedwe ka ntchito yanu.
Ndimakonda ma automation, kotero ndidaphunzira momwe ndingalumikizire Pantheon ku GitLab kuti zomwe zimadzipereka kunthambi yayikulu pa GitLab zizitumizidwa kumalo otukuka ku Pantheon. Ndipo kuphatikiza zopempha pa GitLab zitha kupanga ndi kutumiza kachidindo kumalo opangira ma multidev ku Pantheon.
Mu phunziro ili, ndikuyendetsani momwe mungakhazikitsire kulumikizana pakati pa GitLab ndi Pantheon ndikuwongolera mayendedwe anu a WordPress ndi Drupal.
Inde ndizotheka, galasi GitLab chosungira, koma tidzachita zonse ndi manja athu kuti tifufuze GitLab CI ndipo mtsogolomo mugwiritse ntchito chida ichi osati kungotumiza.
Mau oyamba
Pa positi iyi, muyenera kumvetsetsa kuti Pantheon imaphwanya tsamba lililonse kukhala zinthu zitatu: code, database, ndi mafayilo.
Khodiyo imaphatikizapo mafayilo a CMS monga WordPress core, mapulagini, ndi mitu. Mafayilo awa amayendetsedwa mkati Git repositories, yoyendetsedwa ndi Pantheon, kutanthauza kuti titha kutumiza ma code kuchokera ku GitLab kupita ku Pantheon ndi Git.
Mafayilo mu Pantheon ndi mafayilo atolankhani, ndiye kuti, zithunzi za tsambalo. Nthawi zambiri amayikidwa ndi ogwiritsa ntchito ndipo Git amawanyalanyaza.
Pulojekiti yanga pa Pantheon ndi GitLab imatchedwa pantheon-gitlab-blog-demo. Dzina la polojekiti liyenera kukhala lapadera. Apa tigwira ntchito ndi tsamba la WordPress. Mutha kutenga Drupal, koma muyenera kusintha zinthu zina.
Tsopano tiyeni tisinthe git remote originkuloza ku GitLab m'malo mwa Pantheon. Zingatheke ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote.
Tiyeni tipite ku pulojekiti ya GitLab ndikukopera ulalo wosungira kuchokera pagulu la Clone patsamba lazambiri za polojekiti. Tiyeni tisankhe Clone ndi SSH njira, chifukwa takonza kale kiyi ya SSH.
zotsatira git remote kwa kopi yakomweko ya code repository - origin. Izi zitha kusinthidwa c git remote set-url origin [URL ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitLab], komwe m'malo mwa mabulaketi timalowetsa ulalo weniweni.
Pomaliza, timayamba git push origin master --forcekukankhira code ya WordPress kuchokera ku Pantheon kupita ku GitLab.
Njira ya -force ikufunika kamodzi kokha. Kenako m'magulu git push sichikhala pa GitLab.
Kupanga zidziwitso ndi zosintha
Kumbukirani momwe tidawonjezerera kiyi ya SSH kwanuko kuti mulowe ku Pantheon ndi GitLab? Chizindikiro cha SSH chingagwiritsidwe ntchito kuvomereza GitLab ndi Pantheon.
Kwa ife, tikufuna kupeza Pantheon kuchokera ku GitLab. Timatsatira malangizo mu Pantheon chikalata pa kuwonjezera kiyi ya SSH ku Pantheon ndi kuchita sitepe iyi.
Kumbukirani: SSH yachinsinsi ili ku GitLab, SSH yotseguka ili ku Pantheon.
Tiyeni tikhazikitse zina zingapo zosintha zachilengedwe. Yoyamba imatchedwa PANTHEON_SITE. Mtengo wake ndi dzina la tsamba la Pantheon pamakina anu.
Dzina pamakina limalembedwa kumapeto kwa Clone ndi Git command. Mwapanga kale malowa kwanuko, ndiye ili likhala dzina lachikwatu chakomweko.
Kenako, tiyeni tiyike kusintha kwa chilengedwe PANTHEON_GIT_URL. Ili ndiye ulalo wa Git wa tsamba la Pantheon lomwe tagwiritsa ntchito kale.
Lowetsani ulalo wa SSH wokha, popanda git clone ndi dzina la malo pa makina kumapeto.
Zomwe tikhala tikuchita ndi GitLab CI ndizofanana kwambiri ndi zomwe tidachita ndi Git repositories m'mbuyomu. Koma nthawi ino, tiyeni tiwonjezere posungira Pantheon ngati gwero lachiwiri lakutali la Git, kenako ndikukankhira kachidindo kuchokera ku GitLab kupita ku Pantheon.
Pomaliza, onjezani, perekani ndikutumiza fayilo .gitlab-ci.yml pa GitLab.
Kuyang'ana kutumizidwa
Ngati tachita zonse molondola, ntchitoyo deploy:dev idzayenda bwino mu GitLab CI/CD ndikupereka kudzipereka .gitlab-ci.yml ku Pantheon. Tiyeni tiwone.
Kutumiza ulusi wofunsira ku Pantheon
Apa tigwiritsa ntchito zomwe ndimakonda za Pantheon β multidev, komwe mungapangire malo owonjezera a Pantheon a nthambi za Git pakufunika.
Kufikira kwa multidev ndikochepa, kotero kuti gawoli likhoza kudumpha. Koma ngati muli ndi mwayi, mutha kukulitsa zokolola pokhazikitsa makonda a multidev pa Pantheon kuchokera ku GitLab kuphatikiza zopempha.
Choyamba tiyeni tipange nthambi yatsopano ya Git kwanuko pogwiritsa ntchito git checkout -b multidev-support. Tsopano tiyeni tisinthe china chake .gitlab-ci.yml.
Ndimakonda kuphatikiza nambala yofunsira mu dzina la chilengedwe la Pantheon. Mwachitsanzo, pempho loyamba lophatikiza ndi mr-1, chachiwiri - mr-2 ndi zina.
The kuphatikiza pempho kusintha, kotero tiyenera dynamically kudziwa mayina a nthambi Pantheon. Ndiosavuta pa GitLab - muyenera kungogwiritsa ntchito zodziwikiratu zachilengedwe zosintha.
Tikhoza kutenga $CI_MERGE_REQUEST_IIDkufotokoza nambala yofunsira yophatikiza. Tiyeni tigwiritse ntchito zonsezi pamodzi ndi zosintha zapadziko lonse zomwe tidazitchula kale ndikuwonjezera kutumiza kwatsopano:multidev task kumapeto kwa fayilo. .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
Zidzakhala zofanana ndi ntchito yathu deploy:dev, nthambi yokhayo imatumizidwa ku Pantheon, osati master.
Onani, ulusi watsopano watumizidwa ku Pantheon. Koma ngati tipita ku gawo la multidev pa dashboard ya Pantheon site, sitidzawona malo atsopano kumeneko.
Tiyeni tiwone gawo la Git Branches.
Chifukwa chake, ulusi wathu mr-1 adafika ku Pantheon. Tiyeni tipange chilengedwe kuchokera ku nthambi mr-1.
Tapanga chilengedwe cha multidev, tsopano tiyeni tibwerere ku GitLab ndikuwona gawolo Ntchito > Malo. Tidzawona zotsatira za dev ΠΈ mr-1.
Izi ndichifukwa tawonjezera cholowa environment Ndi dzina name ΠΈ url mu ntchito za CI/CD. Ngati tidina chizindikiro cha chilengedwe chotseguka, tidzatengedwa kupita ku ulalo wa chilengedwe cha multidev pa Pantheon.
Sinthani kupanga kwa multidev
M'malo mwake, mutha kuyima apa ndikungokumbukira kupanga malo opangira ma multidev pazopempha zilizonse, koma izi zitha kukhala zokha.
Pantheon ili ndi chida cholamula Terminus, kumene mungathe kugwira ntchito ndi nsanja basi. Terminus imakupatsani mwayi wopanga ma multidev kuchokera pamzere wamalamulo - abwino GitLab CI.
Kuti mugwiritse ntchito Terminus mu ntchito za GitLab CI/CD, mufunika chizindikiro cha makina kuti mutsimikizire ndi Terminus ndi chithunzi cha chidebe chokhala ndi Terminus.
GitLab ili ndi zolembera zotengera, komwe tingamange ndikuyika Dockerfile ya polojekiti yathu. Tiyeni tipange Dockerfile ndi Terminus kuti tigwire ntchito ndi Pantheon.
Terminus ndi chida cha mzere wa PHP, kotero tiyeni tiyambe ndi chithunzi cha PHP. Ndikuyika Terminus kupyolera mwa Composer, kotero ndigwiritsa ntchito chithunzi chovomerezeka cha Docker Composer. Timalenga Dockerfile m'ndandanda wankhokwe zakomweko ndi izi:
# 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"
Tsatirani malangizo osonkhanitsa ndi kutumiza zithunzi kuchokera mgawoli Pangani ndi kukankha zithunzi Π² zikalata zolembera zotengerakusonkhanitsa chithunzi kuchokera Dockerfile ndikukankhira ku GitLab.
Kutsegula gawo Registry mu polojekiti ya GitLab. Ngati zonse zikuyenda molingana ndi dongosolo, chithunzi chathu chidzakhalapo. Lembani ulalo ku tag yachithunzi - tikufuna fayilo .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
Script ili mu bukhu lachinsinsi ndi sichilola mwayi wopezeka pa intaneti ku Pantheon. Tili ndi script ya multidev logic yathu. Tiyeni tsopano tisinthire gawoli deploy:multidev fayilo .gitlab-ci.ymlkuti izi zitheke:
Ife ku Pantheon tachita bwino pa mtundu 2 wathu plugin ya zida zomanga za Terminus ndi chithandizo cha GitLab. Ngati simukufuna kuvutitsidwa ndi zoikamo za polojekiti iliyonse, yesani pulogalamu yowonjezerayi ndipo mutithandize kuyesa beta ya v2. Za timu ya Terminus build:project:create Mukungofunika chizindikiro cha Pantheon ndi chizindikiro cha GitLab. Adzatumiza imodzi mwama projekiti omwe ali ndi Composer ndi kuyesa kwaotomatiki, kupanga pulojekiti yatsopano ku GitLab, tsamba latsopano la Pantheon, ndikuwalumikiza pogwiritsa ntchito zosintha zachilengedwe ndi makiyi a SSH.
Za wolemba
Andrew Taylor amapanga zida zopangira opanga mkati Pantheon.