Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows
Elit hospites nostri instrumentorum creator apud Pantheon loquitur quomodo automate WordPress instruere utendo GitLab CI/CD.
Π Pantheon In elit relationibus laboro, ideo semper novas vias quaero ut WordPress et Drupal tincidunt auxilium solvendi quaestiones automationis in suis laboribus operantur. Ad hoc faciendum, iuvat instrumenta nova experiri et inter se coniungere ad efficaciter operandum.
Saepe video tincidunt luctantem cum uno servo choragii.
Placet exspectare vicem tuam ut servo intermedio utaris vel clientibus URL cum nota: "Hic vide, sed adhuc hic noli quaerere."
Multidev ambitus - unum e instrumentorum frigidorum Pantheon - hoc problema solvit, quia cum illis ambitus Git rami in demanda creare potes. Uniuscuiusque multidev ambitus domicilium suum et datorum habet, ut tincidunt tacite laborare, qualitatem reprime, approbationem sine alterius digitos ingredi.
Pantheon autem instrumenta versionis non habet vel continuam integrationem et instruere (CI/CD). Sed est suggestum flexibile quo instrumenta quaevis integrare potes.
Animadvertit etiam iunctiones quaedam instrumentorum ad progressionem uti, et alia ad coetum et instruere.
Exempli causa, instrumenta versionis habent diversae potestates et CI/CD. Habes circum fiddle et inter instrumenta emendandi codicem et egritudinem problemata commutandum.
In GitLab Plena copia instrumentorum evolutionis est: versionis imperium, tesserae, petitiones merge, ci/CD pipeline-in-genus, continens actis subcriptio, et omnia huiusmodi. Nondum tamen accessi per applicationem quae tantum offert ad operandum progressionem laboris tui.
Automationem amo, sic didici quomodo coniungere Pantheon cum GitLab ut committat ramum principalem in GitLab explicatur ad principale evolutionis environment in Pantheon. Rogationes in GitLab merge possunt creare et codicem ad multidevorum ambitus in Pantheo explicari.
In hoc doceo, te per ambulabo quomodo connexionem inter GitLab et Pantheon constituas et optimize tuum WordPress et Drupal workflow.
Scilicet fieri potest; Speculum GitLab repositiosed omnia manibus faciemus ut introeas C. GitLab et in futuro hoc instrumento non solum instruere.
introduction
Pro hac statione, intelligere debes Pantheon singulas partes in tria elementa frangere: codicem, datorum et imaginum.
In codice includit lima CMS ut nucleum WordPress, plugins themata et themata. Haec files administrata sunt in git repositoriaHosted a Pantheo, quod significatum est codicem a GitLab ad Pantheon explicandum apud Git.
Tabulae in Pantheon sunt fasciculi instrumentorum, id est, imagines pro situ. Typice impositi sunt ab utentibus et Git eas negligit.
Proiectum meum in Pantheon et GitLab appellatur pantheon-gitlab-blog-demo. Nomen consilii singulare esse debet. Hic cum WordPress situs operabitur. Drupal capere potes, sed quaedam mutare debes.
Si manus tuae pruriunt ad aliquid mutandum, exempli gratia, plugins remove vel addendi, patientes estote. Situs GitLab nondum connexus est, omnesque codicis mutationes per GitLab ire volumus.
Cum WordPress instituimus, ad Pantheon website ashboardday reverti et progressionem modum Git mutare.
Coepi committere in GitLab
Nunc debes transferre primum WordPress codicem e Pantheo ad GitLab situm. Ad hoc faciendum, clone codicem e Git repositorio Pantheonis situs localiter, et tunc ad GitLab repositorium mitte.
Eamus ad consilium GitLab et URL repositorium ex Clone stillicidium effingo in pagina singula documenta. Clone cum optione SSH eligamus, quia iam clavis SSH figuratus est.
per default git remote ad exemplar loci in codice repositio - origin. Hoc mutari potest c git remote set-url origin [URL ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitLab]ubi pro uncis in ipsa URL intramus.
Denique deducimus git push origin master --forcead ventilabis WordPress codicem a Pantheo ad GitLab.
Optionem -force semel tantum opus est. Tum in teams git push non erit in GitLab.
Occasus sursum documentorum et variables
Memento quomodo adiunximus an SSH clavis localiter ad Pantheon et GitLab aperiendum? Quod signum SSH auctoribus adhiberi potest GitLab et Pantheon.
Nunc primum duos gradus complebimus: Novam SSH clavem par localiter cum ssh-keygen creare faciamus et clavis privatam variabilem ad documentum adde.
Tum rogabimus SSH_PRIVATE_KEY quam GitLab CI/CD environment variabilis in project occasus.
In tertio et quarto gradu fasciculum creabimus .gitlab-ci.yml contenti sic:
Lets 'non tamen tabella committere' .gitlab-ci.ymlergo opus est ei aliquid addere.
Nunc quintum gradum facimus et adde clavem publicam quae in primo gradu ad officia creasti quae accessum ad ambitum aedificandum debes.
In casu nostro, Pantheon a GitLab accedere volumus. Sequimur instructiones in documento Pantheon addit ad SSH key ad Pantheon ac perfice hoc gradum.
Memento: privata SSH est in GitLab, aperta SSH in Pantheon.
Paucos plures variabiles ambitus constituamus. Prima vocatur PANTHEON_SITE. Eius valor nomen est machinae Pantheonis situs.
Nomen machinae in fine Clone cum Git imperio recensetur. Situs localiter iam clodatus es, ergo hoc nomen erit repositorii loci.
Deinde, ambitus variabilis statuamus PANTHEON_GIT_URL. Haec est URL repositorium Git ad situs Pantheon quem iam usi sumus.
Intra solum URL repositorium SSH, sine git clone et nomen situs in machina in fine.
Phew. Quod factum est, nunc fasciculum nostrum consummare possumus .gitlab-ci.yml.
Creare deployment negotium
Quod initio cum GitLab CI debebimus facere simillimum est illis quae cum Git repositoria in praeterito fecimus. Sed hoc tempore addamus repositorium Pantheon secundum remotum Git fontem, et codicem a GitLab usque ad Pantheon detrudere.
Hoc facere configurare scaenadeploy ΠΈ negotiumdeploy:devquoniam ad Pantheon explicandam rem explicabimus. Inde file .gitlab-ci.yml Is mos vultus amo is:
variables SSH_PRIVATE_KEY, PANTHEON_SITE ΠΈ PANTHEON_GIT_URL notum spectare debet - has in ambitu variabilium antea constituimus. His variabilibus valores in tabella uti poterimus .gitlab-ci.yml pluries, et solum in uno loco renovandum est.
Denique adde, committe et mitte tabellam .gitlab-ci.yml on GitLab.
Reprehendo instruere
Si recte omnia fecerimus, negotium deploy:dev et bene currere in GitLab CI / CD et committat .gitlab-ci.yml apud Pantheon. Demus aspectum.
Mittens merge petentibus fila Pantheon
Hic utemur pluma Pantheon meus ventus multidev, ubi additos Pantheon ambitibus Git ramis postulantibus creare potes.
Aditus ad multidev limitatursic haec sectio omitti potest. Sed si accessum habes, gravissime augere potes fructibus, latis automatice creationis multidevorum ambituum in Pantheon e GitLab petitionibus merge.
Primum faciamus novam Git genere localiter utendo git checkout -b multidev-support. Nunc iterum aliquid mutare .gitlab-ci.yml.
Libenter placet numerum in Pantheon ambitu nominis includere postulatio merge. Exempli gratia, petitio prima merge est mr-1, secundus - mr-2 etc.
Merge petitionem mutationes, ideo necesse est nomina ramorum Pantheon alacriter determinare. Facile est in GitLab - vos iustus postulo utor praedefinitum environment variables.
Non possumus accipere $CI_MERGE_REQUEST_IIDmerge petitionem specificare numero. Haec omnia applicabimus una cum variabilium globalum ambitu variabilium quae antea diximus ac novam explicandam: multidev opus in fine tabellae adde .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
Simile negotium nostrum erit deploy:devramus Pantheon mittitur, non to master.
Nos adiecimus ac mandavimus updated file .gitlab-ci.ymlet nunc novum ramum impellamus ad GitLab cum git push -u origin multidev-support.
Nunc novam merge petitionem ex ramo crearemus multidev-supportstrepitando Merge petitionem crea.
Rogationem merge creato, inspicimus quomodo CI/CD opus sit supplicium deploy:multidev.
Ecce novum linum Pantheon missum est. Sed si ad multidevorum sectionem in Pantheon situs ashboardday eamus, novum ibi ambitum non videbimus.
Inspice Git Rami sectionem.
Quam ob rem, filo nostro mr-1 obtinuit Pantheon. Faciamus amet ex ramo mr-1.
Multidevorum ambitum creavimus, nunc ad GitLab eamus et sectionem intueamur Res> Environments. Videbimus entries for dev ΠΈ mr-1.
Hoc est quod ingressum addidit environment Cum nomine name ΠΈ url in CI / CD munia. Si in icone ambitu aperta strepentes, domicilio multidevorum ambitus Pantheon erimus.
Automate creatio multidev
In principio, hic subsistere potes et tantum memento ut multidev ambitus singulorum merge petitionem creare, sed hic processus potest automated.
Pantheon instrumentum lineae mandatum habet terminus, ubi statim cum suggestu operari potes. Terminus permittit ut multidev ambitus ex mandato linea - ideali crees C. GitLab.
Non opus est novam rogationem merge ut hoc experiatur. Faciamus novum genere utens git checkout -b auto-multidev-creation.
Ut Termino in GitLab CI/CD opera utaris, machina opus est signo authenticitatis cum Termino et imaginem continens cum Termino.
Creando Pantheon Machina Thocheneam in loco tuto serva et eam adde ut in ambitu globali variabilis in GitLab nomine PANTHEON_MACHINE_TOKEN.
Si oblitus es quomodo addere GitLab ambitus variabiles, revertere ad ubi definivimus PANTHEON_SITE.
Creando Dockerfile cum Termino
Si non uti Docker vel non sicut files DockerfileSume imaginem meam registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest et transiliunt hanc sectionem.
GitLab est continens subcriptioubi Dockerfile ad propositum nostrum construere et collocare possumus. Dockerfile cum Termino faciamus Pantheon laborare.
Terminus est instrumentum lineae PHP mandatum, ut ab imagine PHP incipiamus. Terminum per Compositor instituo, ut utar officialis Docker Composer image. Nos creare Dockerfile in repositorio locali cum sequenti contento:
# 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"
Mandata sequere de congregandis et mittendis imaginibus ex sectione Aedificare et dis imaginibus Π² continens subcriptio documentacolligere imaginem Dockerfile et detrudere ad GitLab.
Aperi sectionem subcriptio in GitLab project. Si omnia secundum propositum venerint, imago nostra ibi erit. Scribere nexum imaginis tag - nobis opus est pro tabella .gitlab-ci.yml.
sectioni script in quaestionem deploy:multidev crescere incipit, ut eam ad fasciculum separatum moveamus. Novam file 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
Scriptum est in presul privatis et aditum ad Pantheon non permittit. Scriptionem habemus multidev logicae nostrae. Lets nunc ad sectionem update deploy:multidev file .gitlab-ci.ymlut eveniat sic:
Facere debemus ut opera nostra in imagine consuetudinaria creata perficiantur, definitionem addamus image ex subcriptio URL to .gitlab-ci.yml. Quam ob rem cum fasciculo sic finivimus .gitlab-ci.yml:
Adde committere et mittere private/multidev-deploy.sh ΠΈ .gitlab-ci.yml. Nunc ad GitLab revertimur et exspectamus negotium CI/CD ad perficiendum. Perfer: multidev plura minuta creare potest.
Deinde imus vide multidev elenchum Pantheon. O miraculum! Multidev environment mr-2 iam hic.
conclusio,
Turma mea multum plus fun habebat cum petitiones merge aperiendo coepimus et ambitus creando automatice.
Cum validis instrumentis GitLab et Pantheo, GitLab ad Pantheon statim coniungere potes.
Cum GitLab CI/CD utimur, nostri laboris fluxus locum crescendi habebit. Hic duae ideae sunt ut incipias:
gradatim construere add.
probatio automated add.
Negotium addere curandi signa in codice occurrerunt.
Nos Pantheon bene egimus officium in versione 2 nostra plugin in Termino constructum instrumenta apud GitLab auxilium. Si non vis molestare cum uncinis pro singulis propositis, experire hoc plugin et adiuva nos tenta v2 beta. Ad Terminum team build:project:create Tantum opus est Pantheo indicium et GitLab indicium. Unum specimen inceptis cum Composer et probatione automated explicabit, novum project in GitLab, novum Pantheon situm, conectet, et conectet utens variabilium ambitum et claves SSH.
De auctor
Andrew Taylor instrumenta pro developers creat Pantheon.