Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows
Peb cov qhua tsim cov cuab yeej tsim tawm ntawm Pantheon tham txog yuav ua li cas kom siv WordPress xa mus siv GitLab CI / CD.

Π’ Pantheon Kuv ua haujlwm hauv kev tsim kho kev sib raug zoo, yog li kuv ib txwm nrhiav txoj hauv kev tshiab los pab WordPress thiab Drupal cov neeg tsim khoom daws teeb meem automation hauv lawv cov haujlwm ua haujlwm. Ua li no, kuv nyiam sim nrog cov cuab yeej tshiab thiab sib xyaw ua ke kom ua haujlwm tau zoo.

Kuv feem ntau pom cov neeg tsim tawm tawm tsam nrog ib tus neeg rau zaub mov staging.

Nws yog qhov zoo siab tos koj tig los siv cov neeg siv nruab nrab lossis xa cov neeg siv URL nrog cov ntawv ceeb toom: "Saib ntawm no, tab sis tseem tsis tau saib ntawm no."

Multidev ib puag ncig - ib qho ntawm cov cuab yeej txias Pantheon - daws qhov teeb meem no, vim tias nrog lawv koj tuaj yeem tsim ib puag ncig rau Git ceg ntawm kev thov. Txhua qhov chaw multidev muaj nws tus kheej URL thiab database, yog li cov neeg tsim khoom tuaj yeem ua haujlwm ntsiag to, tshawb xyuas qhov zoo, thiab tau txais kev pom zoo yam tsis muaj kev sib tw ntawm ib leeg.

Tab sis Pantheon tsis muaj cov cuab yeej rau kev tswj hwm version lossis kev koom ua ke txuas ntxiv thiab xa mus (CI / CD). Tab sis nws yog lub platform hloov tau uas koj tuaj yeem sib xyaw ua ke txhua yam cuab yeej.

Kuv kuj pom tias pab pawg siv qee yam cuab yeej rau kev txhim kho, thiab sib txawv rau kev sib dhos thiab xa mus.

Piv txwv li, lawv muaj cov cuab yeej sib txawv rau kev tswj hwm version thiab CI / CD. Koj yuav tsum fiddle ib ncig thiab hloov ntawm cov cuab yeej los kho cov cai thiab kuaj cov teeb meem.

rau GitLab muaj tag nrho cov txheej txheem kev txhim kho: rau kev tswj hwm version, daim pib, kev thov sib koom ua ke, qhov zoo tshaj plaws hauv chav kawm CI / CD pipeline, lub thawv ntawv sau npe, thiab txhua yam zoo li ntawd. Kuv tseem tsis tau tuaj hla ib daim ntawv thov uas muaj ntau heev los tswj koj txoj haujlwm txhim kho.

Kuv nyiam automation, yog li kuv kawm paub yuav ua li cas txuas Pantheon rau GitLab thiaj li cog lus rau cov ceg tseem ceeb ntawm GitLab raug xa mus rau qhov chaw loj hlob hauv Pantheon. Thiab sib koom ua ke thov ntawm GitLab tuaj yeem tsim thiab xa cov lej rau ntau qhov chaw nyob hauv Pantheon.

Hauv qhov kev qhia no, kuv yuav taug kev koj los ntawm yuav ua li cas teeb tsa kev sib txuas ntawm GitLab thiab Pantheon thiab txhim kho koj qhov WordPress thiab Drupal workflow.

Tau kawg nws yog ua tau, iav GitLab repository, tab sis peb yuav ua txhua yam nrog peb txhais tes kom delve rau hauv GitLab CI thiab yav tom ntej siv cov cuab yeej no tsis yog rau kev xa tawm xwb.

Taw qhia

Rau cov ntawv tshaj tawm no, koj yuav tsum nkag siab tias Pantheon rhuav tshem txhua qhov chaw hauv peb lub ntsiab lus: code, database, thiab cov ntaub ntawv.

Cov cai suav nrog CMS cov ntaub ntawv xws li WordPress core, plugins, thiab cov ntsiab lus. Cov ntaub ntawv no yog tswj hauv Git repositories, tuav los ntawm Pantheon, txhais tau tias peb tuaj yeem xa cov lej los ntawm GitLab mus rau Pantheon nrog Git.
Cov ntaub ntawv hauv Pantheon yog cov ntaub ntawv xov xwm, uas yog, cov duab rau lub xaib. Feem ntau lawv tau upload los ntawm cov neeg siv thiab Git tsis quav ntsej lawv.

Tsim ib tus account dawb, nrhiav paub ntxiv txog Pantheon ua haujlwm los yog sau npe rau tus demo ntawm pantheon.io.

Kev xav

Kuv qhov project ntawm Pantheon thiab GitLab hu ua pantheon-gitlab-blog-demo. Lub npe ntawm qhov project yuav tsum yog qhov tshwj xeeb. Ntawm no peb yuav ua haujlwm nrog lub vev xaib WordPress. Koj tuaj yeem noj Drupal, tab sis koj yuav tsum tau hloov qee yam.

Kuv yuav siv Git hais kom ua kabthiab koj tuaj yeem ua haujlwm hauv graphical interface, yog tias koj xav tau.

Tsim ib qhov project

Ua ntej, cia peb tsim Qhov project GitLab (Peb yuav rov qab los rau qhov no tom qab).

Tam sim no tsim lub vev xaib WordPress ntawm Pantheon. Tom qab ntawd peb nruab WordPress rau qhov chaw dashboard.

Yog tias koj txhais tes khaus hloov qee yam, piv txwv li, tshem tawm lossis ntxiv plugins, ua siab ntev. Lub vev xaib tseem tsis tau txuas nrog GitLab, thiab peb xav kom txhua tus lej hloov pauv mus dhau GitLab.

Thaum peb nruab WordPress, rov qab mus rau Pantheon lub vev xaib dashboard thiab hloov txoj kev txhim kho rau Git.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Kev cog lus pib ntawm GitLab

Tam sim no koj yuav tsum hloov qhov pib WordPress code los ntawm Pantheon site mus rau GitLab. Txhawm rau ua qhov no, peb clone cov cai los ntawm Git repository ntawm Pantheon qhov chaw hauv zos, thiab xa mus rau GitLab repository.

Ua kom yooj yim dua thiab nyab xeeb dua, ntxiv tus yuam sij SSH rau Pantheon thiab peb yuav tsis tas sau tus password txhua zaus peb clone Pantheon Git repository. Tib lub sij hawm twb ntxiv tus yuam sij SSH rau GitLab.

Txhawm rau ua qhov no, clone Pantheon lub vev xaib hauv zos los ntawm kev luam cov lus txib los ntawm Clone nrog Git teb ntawm lub vev xaib dashboard.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows
Yog tias koj xav tau kev pab, nyeem cov ntaub ntawv pib nrog Git rau Pantheon.

Tam sim no cia peb hloov git remote origintaw tes rau GitLab es tsis txhob Pantheon. Nws tuaj yeem ua tau ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote.

Cia peb mus rau qhov project GitLab thiab luam qhov chaw khaws cia URL los ntawm Clone dropdown ntawm nplooj ntawv cov ntsiab lus. Cia peb xaiv qhov Clone nrog SSH kev xaiv, vim tias peb twb tau teeb tsa tus yuam sij SSH.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

los ntawm neej ntawd hais git remote rau ib lub zos luam ntawm lub code repository - origin. Qhov no tuaj yeem hloov tau c git remote set-url origin [URL рСпозитория GitLab], qhov twg es tsis txhob brackets peb nkag mus rau qhov tseeb URL.

Thaum kawg, peb tso tawm git push origin master --forcethawb WordPress code los ntawm Pantheon rau GitLab.

Qhov kev xaiv -force tsuas yog xav tau ib zaug xwb. Tom qab ntawd hauv pab pawg git push nws yuav tsis nyob ntawm GitLab.

Kev teeb tsa cov ntawv pov thawj thiab cov hloov pauv

Nco ntsoov tias peb ntxiv SSH tus yuam sij hauv zos nkag mus rau Pantheon thiab GitLab li cas? SSH token tuaj yeem siv los tso cai GitLab thiab Pantheon.

GitLab muaj cov ntaub ntawv zoo heev. Cia peb saib ntu ntawm SSH yuam sij thaum siv Docker executor hauv cov ntaub ntawv ntawm kev siv SSH yuam sij nrog GitLab CI / CD.

Tam sim no peb yuav ua tiav thawj ob kauj ruam: Cia peb tsim SSH tus yuam sij tshiab hauv zos nrog ssh-keygen thiab ntxiv tus yuam sij ntiag tug raws li qhov sib txawv ntawm qhov project.

Ces peb mam li nug SSH_PRIVATE_KEY yuav ua li cas GitLab CI/CD ib puag ncig hloov pauv hauv qhov project settings.
Hauv cov kauj ruam thib peb thiab plaub peb yuav tsim cov ntaub ntawv .gitlab-ci.yml nrog cov ntsiab lus zoo li no:

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"

Cia wb tsis txhob ua cov ntaub ntawv .gitlab-ci.yml, ces koj yuav tau ntxiv ib yam dab tsi ntxiv rau nws.

Tam sim no peb ua cov kauj ruam thib tsib thiab ntxiv tus yuam sij rau pej xeem uas koj tsim hauv thawj kauj ruam rau cov kev pabcuam uas koj xav tau nkag mus rau hauv ib puag ncig tsim.

Hauv peb qhov xwm txheej, peb xav nkag mus rau Pantheon los ntawm GitLab. Peb ua raws li cov lus qhia hauv Pantheon daim ntawv ntawm ntxiv tus yuam sij SSH rau Pantheon thiab ua cov kauj ruam no.

Nco ntsoov: tus kheej SSH nyob hauv GitLab, qhib SSH nyob hauv Pantheon.

Cia peb teeb tsa ob peb qhov chaw ib puag ncig ntxiv. Thawj qhov hu ua PANTHEON_SITE. Nws tus nqi yog lub npe ntawm Pantheon qhov chaw ntawm koj lub tshuab.

Lub npe ntawm lub tshuab tau teev nyob rau qhov kawg ntawm Clone nrog Git hais kom ua. Koj twb tau cloned lub xaib hauv zos, yog li qhov no yuav yog lub npe ntawm cov chaw khaws cia hauv zos.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Tom ntej no, cia peb teeb tsa ib puag ncig hloov pauv PANTHEON_GIT_URL. Nov yog Git repository URL rau Pantheon qhov chaw uas peb twb tau siv lawm.

Sau tsuas yog SSH repository URL, tsis muaj git clone thiab lub npe ntawm qhov chaw ntawm lub tshuab thaum kawg.

Phew. Uas ua tiav, tam sim no peb tuaj yeem ua tiav peb cov ntaub ntawv .gitlab-ci.yml.

Tsim ib txoj haujlwm xa tawm

Qhov peb yuav pib ua nrog GitLab CI zoo ib yam li qhov peb tau ua nrog Git repositories yav dhau los. Tab sis lub sijhawm no, cia peb ntxiv Pantheon repository ua qhov chaw nyob deb Git thib ob, thiab tom qab ntawd thawb tus lej los ntawm GitLab mus rau Pantheon.

Ua li no, cia peb teeb tsa theem deploy ΠΈ txoj hauj lwm deploy:dev, vim tias peb yuav xa mus rau qhov chaw tsim kho ntawm Pantheon. Cov ntaub ntawv tshwm sim .gitlab-ci.yml yuav zoo li no:

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

Hloov pauv SSH_PRIVATE_KEY, PANTHEON_SITE ΠΈ PANTHEON_GIT_URL yuav tsum saib kom paub - peb teeb tsa cov kev hloov pauv ib puag ncig ua ntej. Nrog rau cov kev hloov pauv no peb yuav siv tau cov txiaj ntsig hauv cov ntaub ntawv .gitlab-ci.yml ntau zaus, thiab lawv tsuas yog yuav tsum tau hloov kho nyob rau hauv ib qho chaw.

Thaum kawg, ntxiv, cog lus thiab xa cov ntaub ntawv .gitlab-ci.yml ntawm GitLab.

Tshawb xyuas kev xa tawm

Yog tias peb ua txhua yam kom raug, txoj haujlwm deploy:dev yuav ua tiav hauv GitLab CI / CD thiab xa daim ntawv cog lus .gitlab-ci.yml ntawm Pantheon. Cia peb saib.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Xa cov lus thov sib koom ua ke rau Pantheon

Ntawm no peb yuav siv kuv nyiam Pantheon feature βˆ’ multidev, qhov twg koj tuaj yeem tsim Pantheon ib puag ncig ntxiv rau Git ceg ntawm kev thov.

Kev nkag mus rau multidev yog txwv, yog li cov tshooj no tuaj yeem hla. Tab sis yog tias koj muaj kev nkag tau, koj tuaj yeem ua kom muaj txiaj ntsig zoo los ntawm kev teeb tsa tsis siv neeg tsim ntawm multidev ib puag ncig ntawm Pantheon los ntawm GitLab merge thov.

Ua ntej cia peb ua ib ceg Git tshiab hauv zos siv git checkout -b multidev-support. Tam sim no cia peb hloov ib yam dab tsi ntxiv rau hauv .gitlab-ci.yml.

Kuv nyiam suav nrog tus lej thov sib koom ua ke hauv Pantheon ib puag ncig lub npe. Piv txwv li, thawj qhov kev thov sib koom ua ke yog mr-1, ob- mr-2 lwm.

Qhov kev thov sib koom ua ke hloov pauv, yog li peb yuav tsum tau txiav txim siab txog Pantheon ceg npe. Nws yooj yim ntawm GitLab - koj tsuas yog xav tau siv predefined ib puag ncig variables.

Peb tuaj yeem nqa $CI_MERGE_REQUEST_IIDtxhawm rau qhia tus lej thov kev sib koom ua ke. Cia peb siv tag nrho cov no nrog rau lub ntiaj teb kev hloov pauv ib puag ncig peb tau teev ua ntej thiab ntxiv ib qho tshiab deploy: multidev ua haujlwm tom kawg ntawm cov ntaub ntawv .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

Nws yuav zoo ib yam li peb txoj haujlwm deploy:dev, tsuas yog cov ceg xa mus rau Pantheon, tsis yog rau master.

Peb tau ntxiv thiab cog lus rau cov ntaub ntawv tshiab .gitlab-ci.yml, thiab tam sim no cia peb thawb ib ceg tshiab rau GitLab nrog git push -u origin multidev-support.

Tam sim no cia peb tsim ib qho kev thov sib koom ua ke tshiab los ntawm ceg multidev-supportlos ntawm nias Tsim kev sib koom ua ke.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Tau tsim ib qho kev thov sib koom ua ke, peb saib yuav ua li cas CI / CD ua haujlwm deploy:multidev.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Saib, xov tshiab tau xa mus rau Pantheon. Tab sis yog tias peb mus rau ntu multidev ntawm Pantheon site dashboard, peb yuav tsis pom qhov chaw tshiab nyob ntawd.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Cia peb saib ntawm Git ceg ceg.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Yog li ntawd, peb cov xov mr-1 tau mus rau Pantheon. Cia peb tsim ib puag ncig los ntawm ib ceg mr-1.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Peb tau tsim ib puag ncig multidev, tam sim no cia peb rov qab mus rau GitLab thiab saib ntawm ntu Kev Ua Haujlwm> Ib puag ncig. Peb yuav pom cov ntawv rau dev ΠΈ mr-1.

Qhov no yog vim peb ntxiv ib qho kev nkag environment Nrog lub npe name ΠΈ url rau hauv CI/CD cov haujlwm. Yog tias peb nyem rau ntawm qhov qhib ib puag ncig icon, peb yuav raug coj mus rau qhov URL ntawm multidev ib puag ncig ntawm Pantheon.

Automate lub creation ntawm multidev

Hauv txoj ntsiab cai, koj tuaj yeem nres ntawm no thiab tsuas yog nco ntsoov tsim ib puag ncig multidev rau txhua qhov kev thov sib koom ua ke, tab sis cov txheej txheem no tuaj yeem ua haujlwm.

Pantheon muaj cov cuab yeej hais kom ua kab Terminus, qhov twg koj tuaj yeem ua haujlwm nrog lub platform txiav. Terminus tso cai rau koj los tsim multidev ib puag ncig los ntawm kab hais kom ua - zoo tagnrho rau GitLab CI.

Peb xav tau kev thov sib koom ua ke tshiab los sim qhov no. Cia peb tsim ib ceg tshiab siv git checkout -b auto-multidev-creation.

Txhawm rau siv Terminus hauv GitLab CI / CD cov haujlwm, koj xav tau lub tshuab token rau kev lees paub nrog Terminus thiab lub thawv duab nrog Terminus.

Tsim Pantheon Tshuab Token, txuag nws nyob rau hauv qhov chaw nyab xeeb thiab ntxiv nws raws li lub ntiaj teb ib puag ncig hloov pauv hauv GitLab nrog lub npe PANTHEON_MACHINE_TOKEN.

Yog tias koj tsis nco qab ntxiv GitLab ib puag ncig hloov pauv, rov qab mus rau qhov peb tau hais tseg PANTHEON_SITE.

Tsim ib Dockerfile nrog Terminus

Yog tias koj tsis siv Docker lossis tsis nyiam cov ntaub ntawv Dockerfile, nqa kuv daim duab registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest thiab hla ntu no.

GitLab muaj lub thawv ntim npe, qhov twg peb tuaj yeem tsim thiab tso Dockerfile rau peb qhov project. Cia peb tsim Dockerfile nrog Terminus ua haujlwm nrog Pantheon.

Terminus yog PHP hais kom ua kab, yog li cia peb pib nrog PHP duab. Kuv tabtom txhim kho Terminus los ntawm Composer, yog li kuv yuav siv official Docker Composer duab. Peb tsim Dockerfile nyob rau hauv lub zos repository directory nrog cov ntsiab lus hauv qab no:

# 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"

Ua raws li cov lus qhia rau kev sib dhos thiab xa cov duab los ntawm ntu Tsim thiab thawb cov duab Π² ntim cov ntaub ntawv sau npemus sau ib daim duab los ntawm Dockerfile thiab thawb nws mus rau GitLab.

Qhib ntu Kev Sau Npe hauv GitLab qhov project. Yog tias txhua yam mus raws li kev npaj, peb cov duab yuav nyob ntawd. Sau ib qhov txuas rau daim duab lossis - peb xav tau nws rau cov ntaub ntawv .gitlab-ci.yml.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

Feem script hauv qhov teeb meem deploy:multidev tab tom pib loj hlob, yog li cia peb txav nws mus rau ib qho ntaub ntawv cais. Tsim cov ntaub ntawv tshiab 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

Tsab ntawv yog nyob rau hauv ib tug private directory thiab tsis tso cai rau lub vev xaib nkag mus rau Pantheon. Peb muaj ib tsab ntawv rau peb multidev logic. Wb tam sim no hloov kho seem deploy:multidev ntaub ntawv .gitlab-ci.ymlyog li ntawd nws hloov tawm zoo li no:

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

Peb yuav tsum xyuas kom meej tias peb cov dej num tau ua tiav hauv cov duab tsim, yog li cia peb ntxiv cov ntsiab lus image los ntawm npe URL rau .gitlab-ci.yml. Yog li ntawd, peb tau xaus nrog cov ntaub ntawv zoo li no .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

Ntxiv, cog lus thiab xa private/multidev-deploy.sh ΠΈ .gitlab-ci.yml. Tam sim no peb rov qab mus rau GitLab thiab tos rau txoj haujlwm CI / CD kom tiav. Ua siab ntev: multidev tuaj yeem siv sijhawm ob peb feeb los tsim.

Tom qab ntawd peb mus saib cov npe multidev ntawm Pantheon. Oh txuj ci tseem ceeb! Multidev ib puag ncig mr-2 xa no.

Yuav Ua Li Cas Txuas GitLab thiab Pantheon thiab Optimize Drupal thiab WordPress Workflows

xaus

Kuv pab neeg muaj kev lom zem ntau dua thaum peb pib qhib kev thov sib koom ua ke thiab tsim ib puag ncig tau txais.

Nrog cov cuab yeej muaj zog ntawm GitLab thiab Pantheon, koj tuaj yeem txuas GitLab rau Pantheon tau txais.

Txij li thaum peb siv GitLab CI / CD, peb txoj haujlwm yuav muaj chaw loj hlob. Nov yog ob peb lub tswv yim kom koj pib:

Qhia rau kuv paub koj xav li cas txog GitLab, Pantheon thiab automation.

PS Koj puas paub tias Terminus, Pantheon's command line tool, tuaj yeem txuas ntxiv ntawm plugins?

Peb ntawm Pantheon tau ua haujlwm zoo ntawm version 2 ntawm peb plugin rau Terminus tsim cov cuab yeej nrog GitLab kev txhawb nqa. Yog tias koj tsis xav thab nrog kev teeb tsa rau txhua qhov project, sim cov plugin no thiab pab peb sim v2 beta. Rau pab neeg Terminus build:project:create Koj tsuas yog xav tau Pantheon token thiab GitLab token. Nws yuav xa ib qho ntawm cov qauv kev ua haujlwm nrog Composer thiab kev ntsuas tsis siv neeg, tsim ib txoj haujlwm tshiab hauv GitLab, qhov chaw tshiab Pantheon, thiab txuas lawv siv qhov hloov pauv ib puag ncig thiab SSH yuam sij.

Txog tus sau

Andrew Taylor tsim cov cuab yeej rau cov neeg tsim khoom hauv Pantheon.

Tau qhov twg los: www.hab.com

Ntxiv ib saib