Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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.

Creare liberam rationemInvenies plura de Pantheon workflow aut Demo ad signum apud pantheon.io.

Assumptionis

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.

utar Git order versuset potes operari in graphical interfacesi vis.

Creare consilium

Primum creare GitLab project (reveniemus hoc postea).

autem creando WordPress website Pantheon. Tunc installamus WordPress pro situ ashboardday.

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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.

Quo facilius ac tutius; adde SSH clavem ad Pantheon et tesseram ingredi non debemus omni tempore quo Pantheon Git repositorium clone. Simul iam adde quod SSH clavem ad GitLab.

Ad hoc faciendum, clone Pantheon situs localiter mandatum a Clone cum Git agro in locum ashboardday describendo.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows
Si auxilio opus est, documenta lege questus coepi cum Git ad Pantheon.

Nunc mutationem git remote originloco Pantheo monstrare GitLab. Fieri potest ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote.

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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.

GitLab praeclara documenta habet. Videamus sectionem in clavium SSH quando usus Docker exsecutor in documento utens claves SSH cum GitLab CI/CD.

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:

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 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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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 scaena deploy ΠΈ negotium 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:
    - master

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Rogationem merge creato, inspicimus quomodo CI/CD opus sit supplicium deploy:multidev.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Ecce novum linum Pantheon missum est. Sed si ad multidevorum sectionem in Pantheon situs ashboardday eamus, novum ibi ambitum non videbimus.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Inspice Git Rami sectionem.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

Quam ob rem, filo nostro mr-1 obtinuit Pantheon. Faciamus amet ex ramo mr-1.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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:

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_requests

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:

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_requests

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.

Quomodo coniungere GitLab et Pantheon et Optimize Drupal et WordPress Workflows

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:

Quid sentias de GitLab, Pantheon et automatione sciamus.

PS Scisne Terminum , Pantheonis ferramentum , . extendi potest per plugins?

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.

Source: www.habr.com