Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows
ʻO kā mākou mea hana mea hana hoʻokipa malihini ma Pantheon e kamaʻilio e pili ana i ka hoʻokaʻawale ʻana i ka WordPress deployments me ka hoʻohana ʻana iā GitLab CI/CD.

В Pantheon Ke hana nei au i ka pilina o ka mea hoʻomohala, no laila ke ʻimi mau nei au i nā ala hou e kōkua ai i nā mea hoʻomohala WordPress a me Drupal e hoʻoponopono i nā pilikia automation i kā lākou mau kahe hana. No ka hana ʻana i kēia, makemake wau e hoʻokolohua me nā mea hana hou a hui pū kekahi me kekahi e hana pono.

ʻIke pinepine au i nā mea hoʻomohala e hakakā nei me kahi kikowaena staging hoʻokahi.

He mea hauʻoli ia e kali i kou manawa e hoʻohana ai i kahi kikowaena waena a hoʻouna paha i nā mea kūʻai aku i kahi URL me ka memo: "E nānā ma aneʻi, akā mai nānā ʻoe ma aneʻi."

Kaiapuni Multidev - kekahi o nā mea hana Pantheon maikaʻi - hoʻoponopono i kēia pilikia, no ka mea me lākou hiki iā ʻoe ke hana i nā wahi no nā lālā Git ma ke koi. Loaʻa i kēlā me kēia kaiapuni multidev kona URL ponoʻī a me ka waihona, no laila hiki i nā mea hoʻomohala ke hana mālie, nānā i ka maikaʻi, a loaʻa ka ʻae me ka ʻole o ka hehi ʻana i nā manamana wāwae o kekahi.

Akā ʻaʻohe o Pantheon i nā mea hana no ka mana mana a i ʻole ka hoʻohui mau ʻana a me ka waiho ʻana (CI/CD). Akā he kahua maʻalahi ia e hiki ai iā ʻoe ke hoʻohui i nā mea hana.

Ua ʻike nō hoʻi au e hoʻohana ana nā hui i kekahi mau mea hana no ka hoʻomohala ʻana, a me nā mea like ʻole no ka hui ʻana a me ke kau ʻana.

No ka laʻana, loaʻa iā lākou nā mea hana like ʻole no ka mana mana a me CI/CD. Pono ʻoe e hoʻololi a hoʻololi i waena o nā mea hana e hoʻoponopono i ke code a ʻike i nā pilikia.

maluna o GitLab aia kahi hoʻonohonoho piha o nā mea hana hoʻomohala: no ka mana mana, nā tiketi, nā noi hoʻohui, kahi paipu CI/CD maikaʻi loa i ka papa, kahi hoʻopaʻa inoa pahu, a me nā mea like ʻole. ʻAʻole au i ʻike i kahi noi e hāʻawi nui i ka mālama ʻana i kāu kaila hana hoʻomohala.

Makemake au i ka automation, no laila ua aʻo wau pehea e hoʻopili ai iā Pantheon iā GitLab i mea e hoʻokō ai i ka lālā nui ma GitLab e kau ʻia i ka ʻenehana hoʻomohala nui ma Pantheon. A hiki i nā noi hoʻohui ma GitLab ke hana a kau i ka code i nā kaiapuni multidev ma Pantheon.

Ma kēia kumu aʻo, e hele au iā ʻoe ma ke ʻano o ka hoʻonohonoho ʻana i kahi pilina ma waena o GitLab a me Pantheon a hoʻopaʻa i kāu kaila hana WordPress a me Drupal.

He mea hiki, hōʻike i ka waihona waihona GitLab, akā, e hana mākou i nā mea a pau me ko mākou mau lima e komo i loko GitLab CI a i ka wā e hiki mai ana e hoʻohana i kēia mea paahana ʻaʻole wale no ka hoʻolaha.

Hōʻike

No kēia pou, pono ʻoe e hoʻomaopopo e wāwahi ʻo Pantheon i kēlā me kēia pūnaewele i ʻekolu mau mea: code, database, a me nā faila.

Aia ka code i nā faila CMS e like me WordPress core, plugins, a me nā kumumanaʻo. Mālama ʻia kēia mau faila ma Nā waihona waihona Git, mālama ʻia e Pantheon, ʻo ia hoʻi, hiki iā mākou ke kau i ka code mai GitLab a i Pantheon me Git.
ʻO nā faila ma Pantheon nā faila media, ʻo ia hoʻi, nā kiʻi no ka pūnaewele. ʻO ka maʻamau e hoʻouka ʻia e nā mea hoʻohana a ʻaʻole ʻike ʻo Git iā lākou.

Hana i kahi moʻokāki manuahi, ʻike hou aku e pili ana Pantheon kaʻina hana ai ole ia, kau inoa no ka demo ma pantheon.io.

Nā Manaʻo Manaʻo

Ua kapa ʻia kaʻu papahana ma Pantheon a me GitLab pantheon-gitlab-blog-demo. Pono ka inoa o ka papahana. Maanei e hana mākou me kahi pūnaewele WordPress. Hiki iā ʻoe ke lawe iā Drupal, akā pono ʻoe e hoʻololi i kekahi mau mea.

E hoʻohana wau Laina kauoha Gita hiki iā ʻoe ke hana i loko interface kiʻi, inā makemake ʻoe.

Hana i kahi papahana

ʻO ka mua, e hana kākou papahana GitLab (e hoʻi mākou i kēia ma hope).

Ano ka hana ʻana i kahi pūnaewele WordPress ma Pantheon. A laila hoʻokomo mākou i ka WordPress no ka dashboard pūnaewele.

Inā makemake kou mau lima e hoʻololi i kekahi mea, no ka laʻana, wehe a hoʻohui i nā plugins, e hoʻomanawanui. ʻAʻole pili ka pūnaewele iā GitLab, a makemake mākou i nā hoʻololi code āpau e hele ma GitLab.

Ke hoʻokomo mākou i ka WordPress, e hoʻi i ka dashboard pūnaewele Pantheon a hoʻololi i ke ʻano hoʻomohala iā Git.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

ʻO ka hana mua ma GitLab

I kēia manawa pono ʻoe e hoʻololi i ka code WordPress mua mai ka pūnaewele Pantheon i GitLab. No ka hana ʻana i kēia, hoʻopaʻa mākou i ke code mai ka waihona Git o ka pūnaewele Pantheon ma ka wahi, a laila hoʻouna iā ia i ka waihona GitLab.

I mea e maʻalahi a palekana, hoʻohui i kahi kī SSH iā Pantheon a ʻaʻole pono mākou e hoʻokomo i kahi ʻōlelo huna i kēlā me kēia manawa a mākou e hoʻopili ai i kahi waihona Pantheon Git. I ka manawa like ua hoʻohui i kahi kī SSH i GitLab.

No ka hana ʻana i kēia, hoʻopili i ka pūnaewele Pantheon ma ke kope ʻana i ke kauoha mai ke kahua Clone me Git ma ka dashboard pūnaewele.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows
Inā makemake ʻoe i ke kōkua, e heluhelu i ka palapala hoʻomaka me Git no Pantheon.

I kēia manawa e hoʻololi kāua git remote origine kuhikuhi iā GitLab ma kahi o Pantheon. Hiki ke hana командой git remote.

E hele kāua i ka papahana GitLab a kope i ka URL waihona mai ka Clone dropdown ma ka ʻaoʻao kikoʻī o ka papahana. E koho kākou i ke koho Clone me SSH, no ka mea, ua hoʻonohonoho mua mākou i ke kī SSH.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

ma ka paʻamau git remote no kahi kope kūloko o ka waihona code - origin. Hiki ke hoʻololi i kēia c git remote set-url origin [URL репозитория GitLab], ma kahi o nā brackets mākou e komo ai i ka URL maoli.

ʻO ka hope, hoʻomaka mākou git push origin master --forcee pana i ka code WordPress mai Pantheon a i GitLab.

Hoʻokahi wale nō mea e pono ai ke koho -force. A laila ma nā hui git push ʻaʻole ia ma GitLab.

Hoʻonohonoho i nā hōʻoia a me nā loli

E hoʻomanaʻo pehea mākou i hoʻohui ai i kahi kī SSH kūloko e komo i Pantheon a me GitLab? Hiki ke hoʻohana ʻia ka hōʻailona SSH e ʻae iā GitLab a me Pantheon.

He palapala maikaʻi loa ko GitLab. E nana kakou ʻāpana ma nā kī SSH i ka wā e hoʻohana ai i ka Docker executor i ka palapala ma ka hoʻohana ʻana i nā kī SSH me GitLab CI/CD.

E hoʻopau mākou i nā ʻanuʻu mua ʻelua: E hana kāua i kahi kī SSH hou ma ka ʻāina me ssh-keygen a hoʻohui i ke kī pilikino ma ke ʻano he loli i ka papahana..

A laila e nīnau mākou SSH_PRIVATE_KEY pehea GitLab CI/CD hoʻololi kaiapuni i nā hoʻonohonoho papahana.
Ma nā ʻanuʻu ʻekolu a me ka ʻehā e hana mākou i kahi faila .gitlab-ci.yml me nā mea e like me kēia:

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"

Mai hoʻopaʻa i ka faila i kēia manawa .gitlab-ci.yml, a laila pono ʻoe e hoʻohui i kekahi mea ʻē aʻe.

I kēia manawa hana mākou i ka pae ʻelima a e hoʻohui i ke kī lehulehu āu i hana ai i ka hana mua i nā lawelawe āu e pono ai ke komo i loko o ke kahua kūkulu.

I kā mākou hihia, makemake mākou e komo iā Pantheon mai GitLab. Hana mākou i nā ʻōlelo aʻoaʻo ma ka palapala Pantheon ma hoʻohui i kahi kī SSH iā Pantheon a hana i keia hana.

E hoʻomanaʻo: aia ka SSH pilikino ma GitLab, aia ka SSH ma Pantheon.

E hoʻonohonoho hou i kekahi mau mea hoʻololi kaiapuni. ʻO ka mea mua i kapa ʻia ʻo PANTHEON_SITE. ʻO kona waiwai ka inoa o ka pūnaewele Pantheon ma kāu mīkini.

Ua helu ʻia ka inoa ma ka mīkini ma ka hope o ka Clone me ke kauoha Git. Ua hoʻopaʻa ʻoe i ka pūnaewele ma ka ʻāina, no laila ʻo ia ka inoa o ka papa kuhikuhi waihona kūloko.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

A laila, e hoʻonohonoho kākou i ka hoʻololi kaiapuni PANTHEON_GIT_URL. ʻO kēia ka URL waihona Git no ka pūnaewele Pantheon a mākou i hoʻohana mua ai.

E hoʻokomo wale i ka URL waihona SSH, me ka ʻole git clone a me ka inoa o ka pūnaewele ma ka mīkini ma ka hopena.

Phew. Pau kēlā, hiki iā mākou ke hoʻopau i kā mākou faila .gitlab-ci.yml.

E hana i kahi hana hoʻolaha

ʻO ka mea a mākou e hana mua ai me GitLab CI e like loa me ka mea a mākou i hana ai me nā waihona Git i ka wā ma mua. Akā i kēia manawa, e hoʻohui kākou i ka waihona Pantheon ma ke ʻano he kumu lua ʻo Git mamao, a laila kaomi i ke code mai GitLab a i Pantheon.

No ka hana ʻana i kēia, e hoʻonohonoho kāua kahua paʻa deploy и hana deploy:dev, no ka mea, e kau mākou i ke kaiapuni hoʻomohala ma Pantheon. ʻO ka faila hopena .gitlab-ci.yml e like me kēia:

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

Nā Loli SSH_PRIVATE_KEY, PANTHEON_SITE и PANTHEON_GIT_URL pono ke nānā aku - ua hoʻonohonoho mākou i kēia mau ʻano hoʻololi kaiapuni ma mua. Me kēia mau hoʻololi e hiki iā mākou ke hoʻohana i nā waiwai i ka faila .gitlab-ci.yml i nā manawa he nui, a pono lākou e hoʻonui ʻia ma kahi hoʻokahi.

ʻO ka hope, hoʻohui, hana a hoʻouna i ka faila .gitlab-ci.yml ma GitLab.

Ke nānā nei i ka hoʻolaha ʻana

Inā mākou i hana pololei i nā mea a pau, ʻo ka hana deploy:dev e holo maikaʻi ma GitLab CI/CD a hoʻouna i kahi hana .gitlab-ci.yml ma Pantheon. E nānā kāua.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Ke hoʻouna ʻana i nā pae noi hoʻohui iā Pantheon

Maanei e hoʻohana mākou i kaʻu hiʻohiʻona Pantheon punahele − multidev, kahi e hiki ai iā ʻoe ke hana i nā kaiapuni Pantheon hou no nā lālā Git ma ke koi.

Ua kaupalena ʻia ke komo ʻana i ka multidev, no laila hiki ke hoʻokuʻu ʻia kēia ʻāpana. Akā inā loaʻa iā ʻoe ke komo, hiki iā ʻoe ke hoʻonui nui i ka huahana ma ka hoʻonohonoho ʻana i ka hana maʻalahi o nā kaiapuni multidev ma Pantheon mai GitLab merge noi.

E hana mua kākou i lālā Git hou me ka hoʻohana ʻana git checkout -b multidev-support. I kēia manawa e hoʻololi hou kāua i kekahi mea .gitlab-ci.yml.

Makemake au e hoʻokomo i ka helu noi hoʻohui i ka inoa kaiapuni Pantheon. No ka laʻana, ʻo ka noi hui mua mr-1, ka lua - mr-2 etc.

Hoʻololi ka noi merge, no laila pono mākou e hoʻoholo i nā inoa lālā Pantheon. He maʻalahi ma GitLab - pono ʻoe e hoʻohana nā mea hoʻololi kaiapuni i koho mua ʻia.

Hiki iā mākou ke lawe $CI_MERGE_REQUEST_IIDe kuhikuhi i ka helu noi hoʻohui. E hoʻopili i kēia mau mea āpau me nā ʻano hoʻololi kaiapuni honua a mākou i ʻōlelo ai ma mua a hoʻohui i kahi hana hou: multidev task ma ka hopena o ka faila. .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

E like ia me kā mākou hana deploy:dev, Hoʻouna wale ʻia ka lālā i Pantheon, ʻaʻole i master.

Ua hoʻohui mākou i ka faila hou .gitlab-ci.yml, a i kēia manawa e hoʻokuʻu i kahi lālā hou iā GitLab me git push -u origin multidev-support.

I kēia manawa e hana mākou i kahi noi hoʻohui hou mai ka lālā multidev-supportma ke kaomi ʻana Hana i ka noi hoʻohui.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Ma hope o ka hana ʻana i kahi noi hoʻohui, ʻike mākou i ke ʻano o ka hana CI/CD deploy:multidev.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

E nānā, ua hoʻouna ʻia kahi pae hou iā Pantheon. Akā inā mākou e hele i ka ʻāpana multidev ma ka papa kuhikuhi pūnaewele Pantheon, ʻaʻole mākou e ʻike i ke kaiapuni hou ma laila.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

E nānā kākou i ka ʻāpana ʻo Git Branches.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

ʻO ka hopena, kā mākou pae mr-1 hiki i Pantheon. E hana kākou i kaiapuni mai kahi lālā mr-1.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Ua hana mākou i kahi kaiapuni multidev, i kēia manawa e hoʻi kāua i GitLab a nānā i ka ʻāpana Hana > Kaiapuni. E ʻike mākou i nā mea komo no dev и mr-1.

ʻO kēia no ka mea ua hoʻohui mākou i kahi komo environment Me ka inoa name и url i loko o nā hana CI/CD. Inā mākou e kaomi i ka ikona kaiapuni hāmama, e lawe ʻia mākou i ka URL o ka honua multidev ma Pantheon.

Hoʻokaʻawale i ka hana ʻana o multidev

Ma ke kumu, hiki iā ʻoe ke hoʻōki ma ʻaneʻi a hoʻomanaʻo wale i ka hana ʻana i kahi kaiapuni multidev no kēlā me kēia noi hoʻohui, akā hiki ke hana ʻia kēia kaʻina hana.

Loaʻa iā Pantheon kahi mea hana laina kauoha Kūlana, kahi e hiki ai iā ʻoe ke hana me ka paepae maʻalahi. ʻAe ʻo Terminus iā ʻoe e hana i nā kaiapuni multidev mai ka laina kauoha - kūpono no GitLab CI.

Pono mākou i kahi noi hui hou e hoʻāʻo i kēia. E hana mākou i lālā hou me ka hoʻohana ʻana git checkout -b auto-multidev-creation.

No ka hoʻohana ʻana iā Terminus i nā hana GitLab CI/CD, pono ʻoe i kahi hōʻailona mīkini no ka hōʻoia me Terminus a me kahi kiʻi pahu me Terminus.

Ke hana ʻana i kahi hōʻailona mīkini Pantheon, mālama iā ia ma kahi palekana a hoʻohui iā ia ma ke ʻano he hoʻololi kaiapuni honua ma GitLab me ka inoa PANTHEON_MACHINE_TOKEN.

Inā poina iā ʻoe pehea e hoʻohui ai i nā ʻano like ʻole o GitLab, e hoʻi i kahi a mākou i wehewehe ai PANTHEON_SITE.

Ke hana ʻana i kahi Dockerfile me Terminus

Inā ʻaʻole ʻoe e hoʻohana iā Docker a makemake ʻole i nā faila Dockerfile, lawe i ko'u kii registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest a lele i keia pauku.

Loaʻa iā GitLab kahi waihona waihona, kahi e hiki ai iā mākou ke kūkulu a kau i ka Dockerfile no kā mākou papahana. E hana mākou i kahi Dockerfile me Terminus e hana pū me Pantheon.

ʻO Terminus kahi mea hana laina kauoha PHP, no laila e hoʻomaka kākou me ke kiʻi PHP. Ke kau nei au iā Terminus ma o Composer, no laila e hoʻohana wau kiʻi mana Docker Composer. Hana mākou Dockerfile ma ka papa kuhikuhi waihona kūloko me kēia ʻike:

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

E hahai i nā kuhikuhi no ka hui ʻana a me ka hoʻouna ʻana i nā kiʻi mai ka ʻāpana E kūkulu a paʻi i nā kiʻi в palapala hoʻopaʻa inoa pahue ohi kii mai Dockerfile a pana aku iā GitLab.

E wehe i ka ʻāpana Kakau inoa i ka papahana GitLab. Inā hele nā ​​mea a pau e like me ka hoʻolālā, aia kā mākou kiʻi ma laila. Kākau i lalo i kahi loulou i ka tag kiʻi - pono mākou no ka faila .gitlab-ci.yml.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

Paukū script i ka pilikia deploy:multidev ke hoʻomaka nei e ulu, no laila e neʻe kākou i kahi faila ʻokoʻa. E hana i kahi faila hou 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

Aia ka palapala ma kahi papa kuhikuhi pilikino a ʻAʻole ʻae ʻia ke komo pūnaewele i Pantheon. Loaʻa iā mākou kahi palapala no kā mākou loiloi multidev. E hoʻohou hou i ka ʻāpana deploy:multidev faila .gitlab-ci.ymle like me keia:

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

Pono mākou e hōʻoia e hana ʻia kā mākou mau hana ma ke kiʻi maʻamau i hana ʻia, no laila e hoʻohui i kahi wehewehe image mai ka URL kakau i .gitlab-ci.yml. ʻO ka hopena, ua hoʻopau mākou i kahi faila e like me kēia .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

Hoʻohui, hana a hoʻouna private/multidev-deploy.sh и .gitlab-ci.yml. I kēia manawa, hoʻi mākou i GitLab a kali i ka hana CI / CD e hoʻopau. E hoʻomanawanui: hiki i ka multidev ke hana i kekahi mau minuke.

A laila hele mākou e nānā i ka papa inoa multidev ma Pantheon. Auwe ka hana mana! Kaiapuni Multidev mr-2 ma ʻaneʻi.

Pehea e hoʻohui ai iā GitLab a me Pantheon a hoʻonui i ka Drupal a me WordPress Workflows

hopena

ʻOi aku ka leʻaleʻa o koʻu hui i ka wā i hoʻomaka ai mākou e wehe i nā noi hoʻohui a me ka hana ʻana i nā kaiapuni.

Me nā mea hana ikaika o GitLab a me Pantheon, hiki iā ʻoe ke hoʻohui iā GitLab iā Pantheon maʻalahi.

Ma muli o ka hoʻohana ʻana iā GitLab CI/CD, loaʻa i kā mākou workflow kahi lumi e ulu ai. Eia kekahi mau manaʻo e hoʻomaka ai:

E ʻike iā mākou i kou manaʻo e pili ana iā GitLab, Pantheon a me ka automation.

PS Ua ʻike anei ʻoe ʻo Terminus, ka mea hana laina kauoha a Pantheon, hiki ke hoʻonui ʻia ma o nā plugins?

Ua hana maikaʻi mākou ma Pantheon ma ka mana 2 o kā mākou plugin no nā mea hana hana Terminus me ke kākoʻo ʻo GitLab. Inā ʻaʻole ʻoe makemake e pilikia i nā hoʻonohonoho no kēlā me kēia papahana, e hoʻāʻo i kēia plugin a kōkua iā mākou e hoʻāʻo i ka v2 beta. No ka hui Terminus build:project:create Pono ʻoe i kahi hōʻailona Pantheon a me kahi hōʻailona GitLab. E hoʻolālā ʻo ia i kekahi o nā papahana laʻana me ka Composer a me ka hoʻāʻo automated, e hana i kahi papahana hou ma GitLab, kahi pūnaewele Pantheon hou, a hoʻohui iā lākou me ka hoʻohana ʻana i nā mea hoʻololi kaiapuni a me nā kī SSH.

No ka mea kākau

Hana ʻo Andrew Taylor i nā mea hana no nā mea hoʻomohala ma Pantheon.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka