
Hospes noster, Pantheon, creator instrumentorum fabricatorum, de ratione automatizandi distributiones disserit. WordPress utens GitLab CI/CD.
Π In relationibus cum programmatoribus laboro, itaque semper novas vias quaero ad programmatores adiuvandos. WordPress ΠΈ Drupal Solve problemata automationis in processibus operis. Ad hoc faciendum, amo experimenta facere cum novis instrumentis et ea combinare ad maiorem efficaciam consequendam.
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."
- 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 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 duce, demonstrabo tibi quomodo nexum inter GitLab et Pantheon instituas et modum operis tui optimizes. WordPress ΠΈ Drupal.
Scilicet fieri potest; sed omnia manibus faciemus ut introeas 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.
Codex fasciculos CMS sicut nucleum, extensiones, et themata comprehendit. WordPressHae tabulae administrantur in Hosted 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.
Invenies plura de aut apud pantheon.io.
Assumptionis
Proiectum meum in Pantheon et GitLab appellatur pantheon-gitlab-blog-demoNomen incepti unicum esse debet. Hic cum situ interretiali operabimur. WordPressTu quoque id capere potes Drupal, sed quaedam mutanda erunt.
utar et potes operari in si vis.
Creare consilium
Primum creare (reveniemus hoc postea).
autem Deinde id instituimus. WordPress pro tabula instrumentorum situs interretialis.
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.
Quando id instituemus? WordPress, ad tabulam instrumentorum situs interretialis Pantheon reverte et modum progressionis ad Git muta.
Coepi committere in GitLab
Nunc tibi necesse est codicem initialem transferre. WordPress Ex situ interretiali Pantheonis ad GitLab. Ad hoc faciendum, codicem ex repositorio Git situs interretialis Pantheonis localiter clonamus et deinde ad repositorium GitLab immittimus.
Quo facilius ac tutius; et tesseram ingredi non debemus omni tempore quo Pantheon Git repositorium clone. Simul iam .
Ad hoc faciendum, clone Pantheon situs localiter mandatum a Clone cum Git agro in locum ashboardday describendo.
Si auxilio opus est, documenta lege .
Nunc mutationem git remote originloco Pantheo monstrare GitLab. Fieri potest .
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 mittendum codicem WordPress ex situ Pantheon apud GitLab.
Optionem -force semel tantum opus est. Tum in teams
git pushnon 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.
GitLab praeclara documenta habet. Videamus .
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 in project occasus.
In tertio et quarto gradu fasciculum creabimus .gitlab-ci.yml contenti sic:
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"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 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 cloneet 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 deploy ΠΈ deploy:devquoniam ad Pantheon explicandam rem explicabimus. Inde file .gitlab-ci.yml Is mos vultus amo is:
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:
- mastervariables 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 , ubi additos Pantheon ambitibus Git ramis postulantibus creare potes.
sic 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 .
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_requestsSimile 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 , ubi statim cum suggestu operari potes. Terminus permittit ut multidev ambitus ex mandato linea - ideali crees .
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.
eam 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.
ubi 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 . 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 Π² colligere 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..."
fiScriptum est in presul privatis et . Scriptionem habemus multidev logicae nostrae. Lets nunc ad sectionem update deploy:multidev file .gitlab-ci.ymlut eveniat sic:
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_requestsFacere 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:
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_requestsAdde 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.
- addere .
Quid sentias de GitLab, Pantheon et automatione sciamus.
PS Scisne Terminum , Pantheonis ferramentum , . ?
Nos Pantheon bene egimus officium in versione 2 nostra 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 .
Source: www.habr.com
