GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል
የኛ እንግዳ፣ የገንቢ መሳሪያዎች ፈጣሪ ከፓንታዮን፣ እንዴት የዎርድፕረስ ማሰማራቶችን በ GitLab CI/ሲዲ በራስ-ሰር እንደሚሰራ ያብራራል።

В አማልክቶች እኔ በገንቢ ግንኙነት ውስጥ ነኝ፣ ስለዚህ ሁልጊዜ የዎርድፕረስ እና የ Drupal ገንቢዎች የስራ ፍሰት አውቶማቲክ ጉዳዮችን ለመፍታት አዳዲስ መንገዶችን እፈልጋለሁ። ይህንን ለማድረግ በአዳዲስ መሳሪያዎች መሞከር እና ውጤታማ በሆነ መልኩ ለመስራት እርስ በርስ በማጣመር እወዳለሁ.

ብዙ ጊዜ ገንቢዎች ከአንድ ማዘጋጃ አገልጋይ ጋር ሲታገሉ አያለሁ።

በጣም የሚያስደስት - መካከለኛ አገልጋይ ለመጠቀም ተራዎን በመጠባበቅ ላይ ወይም ለደንበኞች "እዚህ ይመልከቱ ነገር ግን እስካሁን እዚህ አይታዩ" የሚል ምልክት ያለው ዩአርኤል ለመላክ።

multidev አካባቢዎች - ከቀዘቀዙ የ Pantheon መሳሪያዎች አንዱ - ይህንን ችግር ይፍቱ ፣ ምክንያቱም በእነሱ ፍላጎት ለጊት ቅርንጫፎች አከባቢን መፍጠር ይችላሉ ። እያንዳንዱ የመልቲዴቭ አካባቢ የራሱ ዩአርኤል እና ዳታቤዝ አለው፣ ስለዚህ ገንቢዎች እርስበርስ ተረከዝ ሳይረግጡ መስራት፣ጥራት ማረጋገጥ እና ይሁንታ ማግኘት ይችላሉ።

ነገር ግን Pantheon ለስሪት ቁጥጥር ወይም ቀጣይነት ያለው ውህደት እና ማሰማራት (CI/CD) መሳሪያዎች የሉትም። ነገር ግን ማንኛውንም መሳሪያ ማዋሃድ የሚችሉበት ተለዋዋጭ መድረክ ነው.

ቡድኖች አንዳንድ መሳሪያዎችን ለልማት፣ ሌሎች ደግሞ ለግንባታ እና ለማሰማራት እንደሚጠቀሙም አስተውያለሁ።

ለምሳሌ፣ ለስሪት ቁጥጥር እና ለሲአይ/ሲዲ የተለያዩ መሳሪያዎች አሏቸው። ኮድን ለማርትዕ እና ችግሮችን ለመመርመር ዙሪያውን መፈተሽ እና በመሳሪያዎች መካከል መቀያየር አለብዎት።

በ GitLab የተሟላ የግንባታ መሳሪያዎች ስብስብ አለ፡ የስሪት ቁጥጥር፣ ትኬቶች፣ የውህደት ጥያቄዎች፣ ምርጥ-ክፍል CI/ሲዲ ቧንቧ መስመር፣ የመያዣ መዝገብ እና የመሳሰሉት። የልማት የስራ ሂደቱን ለማስተዳደር ብዙ ያለው መተግበሪያ ገና አላገኘሁም።

አውቶሜትሽን እወዳለሁ፣ ስለዚህ Pantheonን ከ GitLab ጋር እንዴት ማገናኘት እንደምችል ተማርኩ ስለዚህም በ GitLab ላይ ላለው ማስተር ቅርንጫፍ ቁርጠኝነት በፓንታዮን ውስጥ ወዳለው ዋና ልማት አካባቢ እንዲሰማራ። የ GitLab ውህደት ጥያቄዎች በፓንተን ውስጥ ለብዙ ዲቭ አካባቢዎች ኮድ መፍጠር እና ማሰማራት ይችላሉ።

በዚህ መመሪያ ውስጥ በ GitLab እና Pantheon መካከል ግንኙነትን እንዴት ማዋቀር እንደሚችሉ እና የእርስዎን WordPress እና Drupal የስራ ፍሰት እንደሚያሳዩ አሳይዎታለሁ።

በእርግጥ ይቻላል, የ GitLab ማከማቻን ያንጸባርቁነገር ግን ወደ ውስጥ ለመግባት ሁሉንም ነገር በብዕሮች እናደርጋለን GitLab CI እና ለወደፊቱ ይህንን መሳሪያ ለማሰማራት ብቻ ሳይሆን ይጠቀሙ.

መግቢያ

ለዚህ ልጥፍ፣ Pantheon እያንዳንዱን ጣቢያ በሶስት አካላት እንደሚከፋፍል መረዳት አለብህ፡ ኮድ፣ ዳታቤዝ እና ፋይሎች።

ኮዱ እንደ ኮር፣ ተሰኪዎች እና የዎርድፕረስ ገጽታዎች ያሉ የሲኤምኤስ ፋይሎችን ያካትታል። እነዚህ ፋይሎች የሚተዳደሩት በ የጂት ማከማቻዎችበPanthon የተስተናገደ ይህ ማለት ከ GitLab ወደ Pantheon በ Git ኮድ ማሰማራት እንችላለን ማለት ነው።
በ Pantheon ውስጥ ያሉ ፋይሎች የሚዲያ ፋይሎች ማለትም ለጣቢያው ሥዕሎች ይባላሉ። ብዙውን ጊዜ የሚሰቀሉት በተጠቃሚዎች ነው እና Git ችላ ይላቸዋል።

ነፃ መለያ ይፍጠሩ፣ ስለ ተጨማሪ ይወቁ Pantheon የስራ ፍሰት ወይም አንድ ማሳያ ይመዝገቡ በ pantheon.io.

ግምቶች

የእኔ Pantheon እና GitLab ፕሮጀክት ይባላል pantheon-gitlab-blog-demo. የፕሮጀክቱ ስም ልዩ መሆን አለበት. እዚህ ከ WordPress ጣቢያ ጋር እንሰራለን. Drupal መውሰድ ይችላሉ, ነገር ግን የሆነ ነገር መለወጥ ያስፈልግዎታል.

እጠቀማለሁ Git የትእዛዝ መስመርእና ውስጥ መስራት ይችላሉ GUI, ብትፈልግ.

ፕሮጀክት ፍጠር

ለመጀመር, እንፈጥራለን GitLab ፕሮጀክት (ወደዚህ በኋላ እንመለሳለን).

አሁን Pantheon ላይ የዎርድፕረስ ጣቢያ መፍጠር. ከዚያ ለጣቢያው ዳሽቦርድ WordPress ን ይጫኑ።

አንድ ነገር ለመለወጥ እጆችዎ የሚያሳክክ ከሆነ፣ ለምሳሌ፣ ተሰኪዎችን ያስወግዱ እና ይጨምሩ፣ ይታገሱ። ጣቢያው እስካሁን ከ GitLab ጋር አልተገናኘም እና ሁሉም የኮድ ለውጦች በ GitLab በኩል እንዲሄዱ እንፈልጋለን።

አንዴ ዎርድፕረስ ከተጫነ ወደ Pantheon ዳሽቦርድ ይመለሱ እና የእድገት ሁነታን ወደ Git ይለውጡ።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

በ GitLab ላይ የመጀመሪያ ቁርጠኝነት

አሁን የመጀመሪያውን የ WordPress ኮድ ከ Pantheon ጣቢያ ወደ GitLab ማስተላለፍ ያስፈልግዎታል። ይህንን ለማድረግ ከፓንታዮን ጣቢያው የ Git ማከማቻ ውስጥ ኮዱን በአገር ውስጥ እንዘጋዋለን እና ከዚያ ወደ GitLab ማከማቻ እንልካለን።

ቀላል እና አስተማማኝ ለማድረግ, የSSH ቁልፍን ወደ Pantheon ያክሉ እና የ Pantheon Git ማከማቻን በዘጋን ቁጥር የይለፍ ቃሉን አናስገባም። በተመሳሳይ ጊዜ ቀድሞውኑ የኤስኤስኤች ቁልፍን ወደ GitLab ያክሉ.

ይህንን ለማድረግ በሳይት ዳሽቦርድ ላይ ከ Clone with Git መስክ ትዕዛዙን በመገልበጥ የ Pantheon ጣቢያን በአካባቢው እንዘጋዋለን።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል
እርዳታ ከፈለጉ ሰነዶቹን ያንብቡ በ Git ለ Pantheon መጀመር.

አሁን እንለወጥ git remote originከፓንታዮን ይልቅ ወደ GitLab ለመጠቆም። ማድረግ ይቻላል командой git remote.

ወደ GitLab ፕሮጀክት እንሂድ እና የማከማቻ ዩአርኤልን ከClone ተቆልቋይ የፕሮጀክት ዝርዝሮች ገጽ ላይ እንቀዳ። የ SSH ቁልፍን አስቀድመን ስላዋቀርን የ Clone ን ከ SSH አማራጭ ጋር እንምረጥ።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

በነባሪ git remote ለአካባቢያዊ የኮድ ማከማቻ ቅጂ - origin. ይህ ከ ሊለወጥ ይችላል git remote set-url origin [URL репозитория GitLab]በቅንፍ ምትክ ትክክለኛውን ዩአርኤል እናስገባለን።

በመጨረሻም እንጀምራለን git push origin master --forceየዎርድፕረስ ኮድን ከ Pantheon ጣቢያ ወደ GitLab ለመግፋት።

የሃይል አማራጭ አንድ ጊዜ ብቻ ነው የሚያስፈልገው። ከዚያም በቡድን git push GitLab አይኖረውም።

ምስክርነቶችን እና ተለዋዋጮችን ያዘጋጁ

ወደ Pantheon እና GitLab ለመግባት የኤስኤስኤች ቁልፍን እንዴት እንደጨመርን ያስታውሱ? የኤስኤስኤች ቶከን GitLab እና Pantheonን ለመፍቀድ ጥቅም ላይ ሊውል ይችላል።

GitLab በጣም ጥሩ ሰነዶች አሉት። እስኪ እናያለን የኤስኤስኤች ቁልፎችን በ GitLab CI/ሲዲ ለመጠቀም በሰነዱ ውስጥ Docker ፈጻሚውን ሲጠቀሙ በSSH ቁልፎች ላይ ያለውን ክፍል ይመልከቱ።.

አሁን የመጀመሪያዎቹን ሁለት ደረጃዎች እንጨርሳለን- አዲስ የኤስኤስኤች ቁልፍ ጥንድ ከssh-keygen ጋር ይፍጠሩ እና የግል ቁልፉን እንደ ተለዋዋጭ ወደ ፕሮጀክቱ ያክሉት።.

ከዚያም እናዘጋጃለን SSH_PRIVATE_KEY እንዴት GitLab CI/CD አካባቢ ተለዋዋጭ በፕሮጀክት ቅንጅቶች ውስጥ.
በሦስተኛው እና በአራተኛው ደረጃ, ፋይል እንፈጥራለን .gitlab-ci.yml እንደዚህ አይነት ይዘት ያለው፡-

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"

ፋይሉን እስክንሰራ ድረስ .gitlab-ci.yml, ከዚያ ሌላ ነገር ማከል ያስፈልግዎታል.

አሁን አምስተኛውን ደረጃ ያድርጉ እና በመጀመሪያ ደረጃ የፈጠርከውን ይፋዊ ቁልፍ በግንባታ አካባቢ ለመድረስ ወደሚፈልጓቸው አገልግሎቶች ያክሉ.

በእኛ ሁኔታ፣ Pantheonን ከ GitLab ማግኘት እንፈልጋለን። በ Pantheon ሰነድ ውስጥ ያሉትን መመሪያዎች ይከተሉ የSSH ቁልፍን ወደ Pantheon ማከል እና ይህን እርምጃ ያድርጉ.

ያስታውሱ፡ የተዘጋው ኤስኤስኤች በ GitLab ውስጥ ነው፣ ክፍት የሆነው በፓንታዮን ውስጥ ነው።

ጥቂት ተጨማሪ የአካባቢ ተለዋዋጮችን እናዘጋጅ። የመጀመሪያው PANTHEON_SITE ይባላል። ዋጋው በማሽንዎ ላይ ያለው የ Pantheon ጣቢያ ስም ነው።

በማሽኑ ላይ ያለው ስም በጊት ትዕዛዝ በ Clone መጨረሻ ላይ ተዘርዝሯል. አስቀድመው ጣቢያውን በአገር ውስጥ ዘግተውታል፣ ስለዚህ ይህ የአካባቢ ማከማቻው ማውጫ ስም ይሆናል።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

በመቀጠል የአካባቢን ተለዋዋጭ ያዘጋጁ PANTHEON_GIT_URL. ይህ ቀደም ብለን የተጠቀምንበት የጊት ማከማቻ ዩአርኤል ነው።

የኤስኤስኤች ማከማቻ ዩአርኤልን ብቻ እናስገባለን ያለ git clone እና በመጨረሻው ማሽኑ ላይ የጣቢያው ስም.

ፊው. ያ ተጠናቀቀ፣ አሁን ፋይላችንን መጨረስ እንችላለን .gitlab-ci.yml.

የማሰማራት ተግባር ይፍጠሩ

መጀመሪያ ላይ ከ GitLab CI ጋር የምናደርገው ነገር ከዚህ ቀደም በ Git ማከማቻዎች ላይ ካደረግነው ጋር በጣም ተመሳሳይ ነው። ነገር ግን በዚህ ጊዜ፣ የ Pantheon ማከማቻን እንደ ሁለተኛ Git የርቀት ምንጭ እንጨምር፣ እና ከዚያ ኮዱን ከ GitLab ወደ Pantheon እንገፋው።

ይህንን ለማድረግ, ያዘጋጁ ደረጃ deploy и ተግባር deploy:devምክንያቱም እኛ Pantheon ላይ ያለውን ልማት አካባቢ እናሰማራለን. በውጤቱም, ፋይሉ .gitlab-ci.yml እንደሚከተለው ይመስላል:

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

ተለዋዋጮች SSH_PRIVATE_KEY, PANTHEON_SITE и PANTHEON_GIT_URL የታወቁ ሊመስሉ ይገባል - እነዚህን የአካባቢ ተለዋዋጮች አስቀድመን አዘጋጅተናል. በእነዚህ ተለዋዋጮች በፋይሉ ውስጥ ያሉትን እሴቶች መጠቀም እንችላለን .gitlab-ci.yml ብዙ ጊዜ, እና እነሱን በአንድ ቦታ ብቻ ማዘመን ያስፈልግዎታል.

በመጨረሻም ፋይሉን ይጨምሩ ፣ ያስገቡ እና ይግፉት .gitlab-ci.yml በ Gitlab.

ማሰማራቱን በመፈተሽ ላይ

ሁሉንም ነገር በትክክል ካደረግን, ተግባሩ deploy:dev በ GitLab CI/CD ውስጥ በተሳካ ሁኔታ ይሰራል እና ቁርጠኝነትን ይገፋል .gitlab-ci.yml በ Pantheon. እስቲ እንመልከት።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

የውህደት ጥያቄ ቅርንጫፎችን ለ Pantheon በማስረከብ ላይ

እዚህ የእኔን ተወዳጅ የ Pantheon ባህሪን እንጠቀማለን - መልቲዴቭተጨማሪ የ Pantheon አከባቢዎችን ለጂት ቅርንጫፎች በጠየቁ ጊዜ መፍጠር የሚችሉበት።

የመልቲዴቭ መዳረሻ ውስን ነው።, ስለዚህ ይህ ክፍል ሊቀር ይችላል. ነገር ግን መዳረሻ ካሎት በ Pantheon ከ GitLab የውህደት ጥያቄዎች ላይ የመልቲዲቭ አካባቢዎችን በራስ ሰር በመፍጠር አፈጻጸሙን በእጅጉ ማሻሻል ይችላሉ።

መጀመሪያ፣ አዲስ የጊት ቅርንጫፍ በአገር ውስጥ እንስራ git checkout -b multidev-support. አሁን የሆነ ነገር እንለውጥ .gitlab-ci.yml.

በ Pantheon አካባቢ ስም ውስጥ የውህደት ጥያቄ ቁጥርን ማካተት እወዳለሁ። ለምሳሌ፣ የመጀመሪያው የውህደት ጥያቄ ነው። mr-1, ሁለተኛ - mr-2 ወዘተ.

የውህደት ጥያቄው እየተቀየረ ነው ስለዚህ የ Pantheon ቅርንጫፎችን ስም በተለዋዋጭነት መወሰን ያስፈልገናል። በ GitLab ላይ፣ ቀላል ነው - መጠቀም ያስፈልግዎታል አስቀድሞ የተገለጹ የአካባቢ ተለዋዋጮች.

መውሰድ እንችላለን $CI_MERGE_REQUEST_IIDየውህደት ጥያቄ ቁጥርን ለመግለጽ. ይህንን ሁሉ ቀደም ብለን ከገለጽናቸው የአለምአቀፍ የአካባቢ ተለዋዋጮች ጋር እንተገብረው እና በፋይሉ መጨረሻ ላይ አዲስ ማሰማራት-multidev ተግባር እንጨምር። .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

ከኛ ተግባር ጋር ተመሳሳይ ይሆናል። deploy:dev, ቅርንጫፉ ብቻ ወደ Pantheon ይሄዳል, ወደ አይደለም master.

የተሻሻለውን ፋይል ጨምረናል። .gitlab-ci.yml፣ እና አሁን አዲስ ቅርንጫፍ ወደ GitLab ግፋ git push -u origin multidev-support.

አሁን ከቅርንጫፉ አዲስ የውህደት ጥያቄ እንፍጠር multidev-supportጠቅ በማድረግ የውህደት ጥያቄ ፍጠር.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

የውህደት ጥያቄን ከፈጠርን በኋላ የCI/CD ተግባር እንዴት እንደሚከናወን እንመለከታለን deploy:multidev.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

ተመልከት - አዲስ ቅርንጫፍ ወደ Pantheon ተልኳል። ነገር ግን በ Pantheon ሳይት ዳሽቦርድ ላይ ወደ multidev ክፍል ከሄድን, አዲሱን አካባቢ እዚያ አናይም.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

የጊት ቅርንጫፎችን ክፍል እንይ።

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

በውጤቱም, ቅርንጫፋችን mr-1 ወደ Pantheon አድርጓል. ከቅርንጫፍ አካባቢን ይፍጠሩ mr-1.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

የመልቲዲቭ አካባቢን ፈጥረናል፣ አሁን ወደ GitLab እንመለስና ክፍሉን እንይ ክወናዎች > አካባቢ. ለ ግቤቶችን እንመለከታለን dev и mr-1.

ይህ የሆነበት ምክንያት መግቢያ ስለጨመርን ነው። environment በስም name и url ወደ CI / ሲዲ ተግባራት. በክፍት አካባቢ አዶ ላይ ጠቅ ካደረግን በ Pantheon ላይ ወደ መልቲዴቭ አካባቢ ዩአርኤል እንሄዳለን።

የ multidev መፍጠርን በራስ-ሰር ያድርጉ

በመርህ ደረጃ, እዚህ ማቆም ይችላሉ እና ለእያንዳንዱ የውህደት ጥያቄ የ multidev አካባቢ መፍጠርን ብቻ ያስታውሱ, ነገር ግን ይህ ሂደት በራስ-ሰር ሊሰራ ይችላል.

Pantheon የትእዛዝ መስመር መሳሪያ አለው። ማረፊያዎችከመድረክ ጋር በራስ-ሰር መስራት የሚችሉበት. ተርሚነስ ከትዕዛዝ መስመሩ የ multidev አካባቢዎችን እንዲፈጥሩ ይፈቅድልዎታል - ፍጹም ለ GitLab CI.

ይህንን ለመሞከር አዲስ የውህደት ጥያቄ እንፈልጋለን። ጋር አዲስ ቅርንጫፍ ይፍጠሩ git checkout -b auto-multidev-creation.

Terminus በ GitLab CI/CD ተግባራት ውስጥ ለመጠቀም በTerminus እና በTerminus መያዣ ምስል ለማረጋገጥ የማሽን ማስመሰያ ያስፈልግዎታል።

የ Pantheon ማሽን ማስመሰያ መፍጠር, ደህንነቱ በተጠበቀ ቦታ ያስቀምጡት እና በስሙ በ GitLab ውስጥ እንደ አለምአቀፍ የአካባቢ ተለዋዋጭ ያክሉት PANTHEON_MACHINE_TOKEN.

የ GitLab አካባቢ ተለዋዋጮችን እንዴት ማከል እንደሚችሉ ከረሱ፣ ወደገለፅንበት ይመለሱ PANTHEON_SITE.

Dockerfile በ Terminus ይፍጠሩ

ዶከርን ካልተጠቀሙ ወይም ፋይሎችን ካልወደዱ Dockerfileየእኔን ምስል አንሳ registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest እና ይህን ክፍል ይዝለሉ.

GitLab የመያዣ መዝገብ አለው።ለፕሮጀክታችን Dockerfile የምንገነባበት እና የምናስተናግድበት። ከ Pantheon ጋር ለመስራት Dockerfile በ Terminus እንፍጠር።

ተርሚነስ የPHP የትእዛዝ መስመር መሳሪያ ነው፣ስለዚህ በPHP ምስል እንጀምር። Terminusን በComposer በኩል እጭነዋለሁ፣ ስለዚህ እጠቀማለሁ። ኦፊሴላዊ ዶከር አቀናባሪ ምስል. እኛ እንፈጥራለን Dockerfile በሚከተለው ይዘት በአከባቢ ማከማቻ መዝገብ ውስጥ፡-

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

ምስሎችን ከክፍሉ ለመገንባት እና ለመላክ መመሪያዎችን ይከተሉ ምስሎችን ይገንቡ እና ይግፉ в የመያዣ መዝገብ ሰነዶችምስል ለመሰብሰብ ከ Dockerfile እና ለ GitLab ያቅርቡ።

ክፍሉን በመክፈት ላይ መዝገብ በ GitLab ፕሮጀክት ውስጥ. ሁሉም ነገር በእቅዱ መሰረት ከሆነ, የእኛ ምስል እዚያ ይኖራል. ወደ ምስል መለያው አገናኝ ይጻፉ - ለፋይሉ ያስፈልገናል .gitlab-ci.yml.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

ክፍል script በተግባሩ ውስጥ deploy:multidev ማደግ ይጀምራል፣ ስለዚህ ወደ ተለየ ፋይል እናንቀሳቅሰው። አዲስ ፋይል ይፍጠሩ 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

ስክሪፕቱ በግል ማውጫ ውስጥ እና ወደ Pantheon የድር መዳረሻን አይፈቅድም።. ለመልቲዲቭ አመክንዮአችን ስክሪፕት አለን። አሁን ክፍሉን እናዘምነው deploy:multidev ፋይል .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:
    # Run the multidev deploy script
    - "/bin/bash ./private/multidev-deploy.sh"
  only:
    - merge_requests

ተግባሮቻችን በተፈጠረ ብጁ ምስል መከናወናቸውን ማረጋገጥ አለብን፣ ስለዚህ ፍቺ እንጨምር image ከመዝገቡ URL ጋር .gitlab-ci.yml. በውጤቱም, እንደዚህ አይነት ፋይል አለን .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

ያክሉ፣ ያስገቡ እና ይላኩ። private/multidev-deploy.sh и .gitlab-ci.yml. አሁን ወደ GitLab ተመልሰን የCI/ሲዲ ስራው እስኪጠናቀቅ እንጠብቃለን። ታጋሽ ሁን፡ መልቲዴቭ ለመፍጠር ብዙ ደቂቃዎችን ሊወስድ ይችላል።

ከዚያም በ Pantheon ላይ ያለውን የ multidev ዝርዝር ለማየት እንሄዳለን. ተአምር ሆይ! multidev አካባቢ mr-2 ቀድሞውኑ እዚህ.

GitLab እና Pantheonን እንዴት ማገናኘት እንደሚቻል እና Drupal እና WordPress Workflows ን ማሻሻል

መደምደሚያ

የውህደት ጥያቄዎችን መክፈት እና አከባቢዎችን በራስ ሰር መፍጠር ስንጀምር የእኔ ቡድን የበለጠ አስደሳች ነበር።

በ GitLab እና Pantheon ኃይለኛ መሳሪያዎች GitLabን ከ ​​Pantheon ጋር በራስ ሰር ማገናኘት ይችላሉ።

GitLab CI/CD እየተጠቀምን ስለሆነ የስራ ፍሰታችን ለማደግ ቦታ ይኖረዋል። እርስዎን ለመጀመር ሁለት ሀሳቦች እዚህ አሉ።

ስለ GitLab፣ Pantheon እና አውቶሜሽን የሚያስቡትን ይጻፉ።

PS ያንን ያውቁ ኖሯል ተርሚነስ፣የፓንታዮን የትእዛዝ መስመር መሳሪያ፣ በተሰኪዎች በኩል ሊራዘም ይችላል?

እኛ Pantheon በእኛ ስሪት 2 ላይ ጥሩ ስራ ሰርተናል ተሰኪ ለ Terminus የግንባታ መሳሪያዎች በ GitLab ድጋፍ። በየፕሮጀክት ማዋቀር መቸገር ካልፈለጉ፣ ይህን ፕለጊን ይሞክሩ እና የv2 ቤታውን እንድንሞክር ያግዙን። ለ Terminus ቡድን build:project:create የ Pantheon token እና GitLab token ብቻ ያስፈልግዎታል። ከናሙና ፕሮጄክቶቹ አንዱን በአቀናባሪ እና አውቶሜትድ ሙከራ ያሰማራቸዋል፣ አዲስ ፕሮጀክት በ GitLab፣ አዲስ Pantheon ሳይት ይፈጥራል፣ እና የአካባቢ ተለዋዋጮችን እና የኤስኤስኤች ቁልፎችን በመጠቀም ያገናኛቸዋል።

ስለ ደራሲው

አንድሪው ቴይለር ለገንቢዎች መሳሪያዎችን ይፈጥራል አማልክቶች.

ምንጭ: hab.com

አስተያየት ያክሉ