GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද
Pantheon හි අපගේ ආගන්තුක සංවර්ධක මෙවලම් නිර්මාතෘ GitLab CI/CD භාවිතයෙන් වර්ඩ්ප්‍රෙස් යෙදවීම් ස්වයංක්‍රීය කරන්නේ කෙසේද යන්න ගැන කතා කරයි.

В පැන්තියන් මම සංවර්ධක සම්බන්ධතා වල වැඩ කරමි, එබැවින් මම වර්ඩ්ප්‍රෙස් සහ Drupal සංවර්ධකයින්ට ඔවුන්ගේ කාර්ය ප්‍රවාහයේ ස්වයංක්‍රීය ගැටළු විසඳීමට උදව් කිරීමට නව ක්‍රම සොයමි. මෙය සිදු කිරීම සඳහා, මම නව මෙවලම් සමඟ අත්හදා බැලීමට සහ ඵලදායී ලෙස වැඩ කිරීමට එකිනෙකා සමඟ ඒකාබද්ධ කිරීමට කැමතියි.

සංවර්ධකයින් තනි ස්ටේජින් සේවාදායකයක් සමඟ පොරබදමින් සිටින බව මම බොහෝ විට දකිමි.

අතරමැදි සේවාදායකයක් භාවිතා කිරීමට හෝ සේවාදායකයින්ට URL එකක් යැවීමට ඔබේ වාරය එනතෙක් බලා සිටීම සතුටට කරුණකි: "මෙහි බලන්න, නමුත් තවමත් මෙහි බලන්න එපා."

Multidev පරිසරය - සිසිල් Pantheon මෙවලම් වලින් එකක් - මෙම ගැටළුව විසඳයි, මන්ද ඒවා සමඟ ඔබට ඉල්ලුම මත Git ශාඛා සඳහා පරිසරයක් නිර්මාණය කළ හැකිය. සෑම multidev පරිසරයකටම තමන්ගේම URL සහ දත්ත සමුදායක් ඇත, එබැවින් සංවර්ධකයින්ට එකිනෙකාගේ ඇඟිලි නොගසා නිහඬව වැඩ කිරීමට, ගුණාත්මකභාවය පරීක්ෂා කිරීමට සහ අනුමැතිය ලබා ගැනීමට හැකිය.

නමුත් Pantheon සතුව අනුවාද පාලනය හෝ අඛණ්ඩ ඒකාබද්ධ කිරීම සහ යෙදවීම (CI/CD) සඳහා මෙවලම් නොමැත. නමුත් එය ඔබට ඕනෑම මෙවලමක් ඒකාබද්ධ කළ හැකි නම්‍යශීලී වේදිකාවකි.

කණ්ඩායම් සංවර්ධනය සඳහා ඇතැම් මෙවලම් භාවිතා කරන බවත්, එකලස් කිරීම සහ යෙදවීම සඳහා විවිධ මෙවලම් භාවිතා කරන බවත් මම දුටුවෙමි.

උදාහරණයක් ලෙස, ඔවුන් අනුවාද පාලනය සහ CI/CD සඳහා විවිධ මෙවලම් ඇත. ඔබට කේත සංස්කරණය කිරීමට සහ ගැටළු හඳුනා ගැනීමට මෙවලම් අතර මාරු වීමට සිදුවේ.

මත GitLab සම්පූර්ණ සංවර්ධන මෙවලම් කට්ටලයක් ඇත: අනුවාද පාලනය, ප්‍රවේශපත්‍ර, ඒකාබද්ධ ඉල්ලීම්, හොඳම පන්තියේ CI/CD නල මාර්ගයක්, බහාලුම් රෙජිස්ට්‍රියක්, සහ එවැනි සියල්ල සඳහා. ඔබේ සංවර්ධන කාර්ය ප්‍රවාහය කළමනාකරණය කිරීමට බොහෝ දේ ලබා දෙන යෙදුමක් මට තවම හමු වී නැත.

මම ස්වයංක්‍රීයකරණයට ප්‍රිය කරමි, එබැවින් මම Pantheon GitLab වෙත සම්බන්ධ කරන්නේ කෙසේදැයි ඉගෙන ගත්තෙමි, එවිට GitLab හි ප්‍රධාන ශාඛාව සඳහා කැපවීම Pantheon හි ප්‍රධාන සංවර්ධන පරිසරය වෙත යොදවනු ලැබේ. තවද GitLab මත ඉල්ලීම් ඒකාබද්ධ කිරීම Pantheon හි බහුදේව් පරිසරයන් වෙත කේතය නිර්මාණය කිරීමට සහ යෙදවීමට හැකිය.

මෙම නිබන්ධනයේදී, GitLab සහ Pantheon අතර සම්බන්ධතාවයක් සකසන්නේ කෙසේද සහ ඔබේ වර්ඩ්ප්‍රෙස් සහ Drupal කාර්ය ප්‍රවාහය ප්‍රශස්ත කරන්නේ කෙසේද යන්න මම ඔබට ගෙන යන්නෙමි.

ඇත්ත වශයෙන්ම එය හැකි ය, දර්පණ GitLab ගබඩාව, නමුත් අපි සොයා බැලීමට අපගේ දෑතින් සෑම දෙයක්ම කරන්නෙමු ගිට්ලැබ් සීඅයි සහ අනාගතයේ දී මෙම මෙවලම යෙදවීම සඳහා පමණක් භාවිතා කරන්න.

හැඳින්වීම

මෙම පළ කිරීම සඳහා, Pantheon එක් එක් වෙබ් අඩවිය මූලද්‍රව්‍ය තුනකට කඩා දමන බව ඔබ තේරුම් ගත යුතුය: කේතය, දත්ත සමුදාය සහ ගොනු.

කේතය වර්ඩ්ප්‍රෙස් කෝර්, ප්ලගීන සහ තේමා වැනි CMS ගොනු ඇතුළත් වේ. මෙම ගොනු කළමනාකරණය කර ඇත Git ගබඩා, Pantheon විසින් සත්කාරකත්වය දරනු ලැබේ, එයින් අදහස් වන්නේ අපට Git සමඟ GitLab සිට Pantheon දක්වා කේතය යෙදවිය හැකි බවයි.
Pantheon හි ඇති ගොනු මාධ්‍ය ගොනු, එනම් වෙබ් අඩවිය සඳහා වන පින්තූර වේ. සාමාන්යයෙන් ඒවා පරිශීලකයන් විසින් උඩුගත කරනු ලබන අතර Git ඒවා නොසලකා හරියි.

නොමිලේ ගිණුමක් සාදන්න, ගැන වැඩි විස්තර දැනගන්න තොරණ වැඩ ප්‍රවාහය හෝ demo එකක් සඳහා ලියාපදිංචි වන්න pantheon.io හි.

උපකල්පන

Pantheon සහ GitLab පිළිබඳ මගේ ව්‍යාපෘතිය ලෙස හැඳින්වේ pantheon-gitlab-blog-demo. ව්‍යාපෘතියේ නම අනන්‍ය විය යුතුය. මෙන්න අපි WordPress අඩවියක් සමඟ වැඩ කරන්නෙමු. ඔබට Drupal ගත හැක, නමුත් ඔබට සමහර දේවල් වෙනස් කිරීමට අවශ්‍ය වනු ඇත.

මම පාවිච්චි කරන්නම් Git විධාන රේඛාවසහ ඔබට වැඩ කළ හැකිය චිත්රක අතුරුමුහුණත, ඔබට අවශ්ය නම්.

ව්යාපෘතියක් සාදන්න

පළමුව, අපි නිර්මාණය කරමු GitLab ව්‍යාපෘතිය (අපි මේ ගැන පසුව එන්නෙමු).

දැන් Pantheon මත WordPress වෙබ් අඩවියක් නිර්මාණය කිරීම. ඊට පස්සේ අපි site dashboard එකට WordPress ස්ථාපනය කරනවා.

යමක් වෙනස් කිරීමට ඔබේ දෑත් කැසීම නම්, උදාහරණයක් ලෙස, ප්ලගීන ඉවත් කිරීම හෝ එකතු කිරීම, ඉවසන්න. වෙබ් අඩවිය තවමත් GitLab වෙත සම්බන්ධ වී නොමැති අතර, සියලුම කේත වෙනස් කිරීම් GitLab හරහා යාමට අපට අවශ්‍යය.

අපි WordPress ස්ථාපනය කළ පසු, Pantheon වෙබ් අඩවියේ උපකරණ පුවරුව වෙත ආපසු ගොස් සංවර්ධන මාදිලිය Git ලෙස වෙනස් කරන්න.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

GitLab හි මූලික කැපවීම

දැන් ඔබට Pantheon අඩවියේ සිට GitLab වෙත මූලික වර්ඩ්ප්‍රෙස් කේතය මාරු කළ යුතුය. මෙය සිදු කිරීම සඳහා, අපි දේශීයව Pantheon අඩවියේ Git ගබඩාවෙන් කේතය ක්ලෝන කර, පසුව එය GitLab ගබඩාවට යවන්නෙමු.

එය පහසු සහ ආරක්ෂිත කිරීමට, Pantheon වෙත SSH යතුරක් එක් කරන්න අපි Pantheon Git ගබඩාවක් ක්ලෝන කරන සෑම අවස්ථාවකම මුරපදයක් ඇතුළත් කිරීමට අපට සිදු නොවේ. ඒ සමගම දැනටමත් GitLab වෙත SSH යතුරක් එක් කරන්න.

මෙය සිදු කිරීම සඳහා, අඩවි උපකරණ පුවරුවේ ඇති Clone with Git ක්ෂේත්‍රයෙන් විධානය පිටපත් කිරීමෙන් Pantheon අඩවිය දේශීයව ක්ලෝන කරන්න.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද
ඔබට උදව් අවශ්‍ය නම්, ලේඛන කියවන්න Pantheon සඳහා Git සමඟ ආරම්භ කිරීම.

දැන් අපි වෙනස් වෙමු git remote originPantheon වෙනුවට GitLab වෙත යොමු කිරීමට. එය කළ හැකිය командой git remote.

අපි GitLab ව්‍යාපෘතියට ගොස් ව්‍යාපෘති විස්තර පිටුවේ ඇති Clone පතනයෙන් ගබඩා URL එක පිටපත් කරමු. අපි දැනටමත් SSH යතුර වින්‍යාස කර ඇති නිසා, SSH සමඟ Clone විකල්පය තෝරා ගනිමු.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

පෙරනිමියෙන් git remote කේත ගබඩාවේ දේශීය පිටපතක් සඳහා - origin. මෙය වෙනස් කළ හැක c git remote set-url origin [URL репозитория GitLab], වරහන් වෙනුවට අපි සත්‍ය URL එක ඇතුල් කරන්නෙමු.

අවසාන වශයෙන්, අපි දියත් කරමු git push origin master --forceවර්ඩ්ප්‍රෙස් කේතය Pantheon සිට GitLab වෙත තල්ලු කිරීමට.

බල විකල්පය අවශ්‍ය වන්නේ එක් වරක් පමණි. ඉන්පසු කණ්ඩායම් වශයෙන් git push එය GitLab මත නොවනු ඇත.

අක්තපත්ර සහ විචල්යයන් සැකසීම

Pantheon සහ GitLab වෙත ලොග් වීමට අපි දේශීයව SSH යතුරක් එක් කළ ආකාරය මතකද? GitLab සහ Pantheon අවසර දීමට SSH ටෝකනය භාවිතා කළ හැක.

GitLab සතුව විශිෂ්ට ලියකියවිලි ඇත. අපි බලමු GitLab CI/CD සමඟ SSH යතුරු භාවිතා කිරීමේ ලේඛනයේ Docker executor භාවිතා කරන විට SSH යතුරු මත කොටස.

අපි දැන් පළමු පියවර දෙක සම්පූර්ණ කරන්නෙමු: අපි ssh-keygen සමඟ දේශීයව නව SSH යතුරු යුගලයක් සාදා ව්‍යාපෘතියට විචල්‍යයක් ලෙස පුද්ගලික යතුර එක් කරමු..

එතකොට අපි අහන්නම් 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, එවිට ඔබට එයට තවත් යමක් එකතු කිරීමට අවශ්‍ය වනු ඇත.

දැන් අපි පස්වන පියවර සහ ඔබ ගොඩනඟන පරිසරය තුළ ප්‍රවේශ වීමට අවශ්‍ය සේවාවන්ට පළමු පියවරේදී ඔබ නිර්මාණය කළ පොදු යතුර එක් කරන්න.

අපගේ නඩුවේදී, අපට GitLab වෙතින් Pantheon වෙත ප්‍රවේශ වීමට අවශ්‍යය. අපි තොරණ ලේඛනයේ උපදෙස් අනුගමනය කරමු Pantheon වෙත SSH යතුරක් එක් කිරීම සහ මෙම පියවර සිදු කරන්න.

මතක තබා ගන්න: පුද්ගලික SSH GitLab හි ඇත, විවෘත SSH Pantheon හි ඇත.

අපි තවත් පරිසර විචල්‍ය කිහිපයක් සකස් කරමු. පළමු එක PANTHEON_SITE ලෙස හැඳින්වේ. එහි වටිනාකම ඔබේ යන්ත්‍රයේ ඇති තොරණ අඩවියේ නමයි.

යන්ත්‍රයේ නම Git විධානය සමඟ Clone අවසානයේ ලැයිස්තුගත කර ඇත. ඔබ දැනටමත් වෙබ් අඩවිය දේශීයව ක්ලෝන කර ඇත, එබැවින් මෙය දේශීය ගබඩා නාමාවලියේ නම වනු ඇත.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

මීළඟට අපි පරිසර විචල්‍යය සකස් කරමු PANTHEON_GIT_URL. මෙය අපි දැනටමත් භාවිතා කර ඇති Pantheon අඩවිය සඳහා වන Git ගබඩා URL එකයි.

තොරව, SSH ගබඩා URL පමණක් ඇතුළු කරන්න git clone සහ අවසානයේ යන්ත්රයේ අඩවියේ නම.

පිව්. ඒක ඉවරයි, දැන් අපිට අපේ ෆයිල් එක ඉවර කරන්න පුළුවන් .gitlab-ci.yml.

යෙදවීමේ කාර්යයක් සාදන්න

අපි මුලින් GitLab CI සමඟ කරන දේ අපි අතීතයේ Git repositories සමඟ කළ දේට බොහෝ සෙයින් සමාන ය. නමුත් මෙවර, අපි දෙවන දුරස්ථ Git මූලාශ්‍රයක් ලෙස Pantheon ගබඩාව එකතු කරමු, ඉන්පසු GitLab සිට Pantheon වෙත කේතය තල්ලු කරමු.

මෙය සිදු කිරීම සඳහා, අපි සකස් කරමු අදියර deploy и කාර්ය deploy:dev, මොකද අපි තොරණ මත සංවර්ධන පරිසරයට යොදවන්නෙමු. ප්රතිඵල ගොනුව .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 තොරණේ. අපි බලමු.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

Pantheon වෙත ඒකාබද්ධ ඉල්ලීම් නූල් යවමින්

මෙන්න අපි මගේ ප්‍රියතම Pantheon විශේෂාංගය භාවිතා කරමු - multidev, ඔබට ඉල්ලුම මත Git ශාඛා සඳහා අමතර Pantheon පරිසරයන් නිර්මාණය කළ හැකිය.

multidev වෙත ප්‍රවේශය සීමිතය, එබැවින් මෙම කොටස මඟ හැරිය හැක. නමුත් ඔබට ප්‍රවේශය තිබේ නම්, GitLab ඒකාබද්ධ ඉල්ලීම් වෙතින් Pantheon මත බහුදේව් පරිසරයන් ස්වයංක්‍රීයව නිර්මාණය කිරීම මඟින් ඔබට ඵලදායිතාව බරපතල ලෙස වැඩි කළ හැක.

මුලින්ම අපි අලුත් Git ශාඛාවක් දේශීයව භාවිතා කරමු 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, ශාඛාව පමණක් තොරණ වෙත යවනු ලැබේ, වෙත නොවේ master.

අපි යාවත්කාලීන ගොනුව එකතු කර කැප කර ඇත .gitlab-ci.yml, දැන් අපි GitLab වෙත නව ශාඛාවක් තල්ලු කරමු git push -u origin multidev-support.

දැන් අපි ශාඛාවෙන් නව ඒකාබද්ධ ඉල්ලීමක් නිර්මාණය කරමු multidev-supportඑබීමෙන් ඒකාබද්ධ ඉල්ලීමක් සාදන්න.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

ඒකාබද්ධ ඉල්ලීමක් නිර්මාණය කිරීමෙන් පසු, අපි CI/CD කාර්යය ක්‍රියාත්මක කරන්නේ කෙසේදැයි බලමු deploy:multidev.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

ඔන්න තොරණට අලුත් ත්‍රෙඩ් එකක් එවලා තියෙනවා. නමුත් අපි Pantheon අඩවි උපකරණ පුවරුවේ multidev කොටසට ගියහොත්, අපට එහි නව පරිසරය නොපෙනේ

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

Git Branches කොටස බලමු.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

එහි ප්රතිඵලයක් වශයෙන්, අපේ නූල් mr-1 තොරණට ගියා. ශාඛාවකින් පරිසරයක් නිර්මාණය කරමු mr-1.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

අපි multidev පරිසරයක් නිර්මාණය කර ඇත, දැන් අපි GitLab වෙත ආපසු ගොස් කොටස දෙස බලමු මෙහෙයුම් > පරිසරය. සඳහා ඇතුළත් කිරීම් අපි දකිමු dev и mr-1.

මෙයට හේතුව අපි ප්‍රවේශයක් එක් කළ බැවිනි environment නමත් එක්ක name и url CI/CD කාර්යයන් වෙත. අපි විවෘත පරිසර නිරූපකය මත ක්ලික් කළහොත්, අපව Pantheon මත multidev පරිසරයේ URL වෙත ගෙන යනු ඇත.

බහුදේව් නිර්මාණය ස්වයංක්‍රීය කරන්න

ප්‍රතිපත්තිමය වශයෙන්, ඔබට මෙහි නතර කළ හැකි අතර එක් එක් ඒකාබද්ධ කිරීමේ ඉල්ලීම සඳහා බහුදේව් පරිසරයක් නිර්මාණය කිරීමට මතක තබා ගන්න, නමුත් මෙම ක්‍රියාවලිය ස්වයංක්‍රීය කළ හැක.

Pantheon සතුව විධාන රේඛා මෙවලමක් ඇත ටර්මිනස්, ඔබට වේදිකාව සමඟ ස්වයංක්‍රීයව වැඩ කළ හැකි ස්ථානය. ටර්මිනස් ඔබට විධාන රේඛාවෙන් බහුදේව් පරිසරයන් නිර්මාණය කිරීමට ඉඩ සලසයි - වඩාත් සුදුසුය ගිට්ලැබ් සීඅයි.

මෙය පරීක්ෂා කිරීමට අපට නව ඒකාබද්ධ කිරීමේ ඉල්ලීමක් අවශ්‍යයි. භාවිතයෙන් නව ශාඛාවක් නිර්මාණය කරමු git checkout -b auto-multidev-creation.

GitLab CI/CD කාර්යයන් සඳහා Terminus භාවිතා කිරීමට, ඔබට Terminus සමඟ සත්‍යාපනය සඳහා යන්ත්‍ර ටෝකනයක් සහ Terminus සමඟ බහාලුම් රූපයක් අවශ්‍ය වේ.

Pantheon යන්ත්‍ර ටෝකනයක් නිර්මාණය කිරීම, එය ආරක්ෂිත ස්ථානයක සුරකින්න සහ නම සමඟ GitLab හි ගෝලීය පරිසර විචල්‍යයක් ලෙස එක් කරන්න PANTHEON_MACHINE_TOKEN.

GitLab පරිසර විචල්‍ය එකතු කරන්නේ කෙසේදැයි ඔබට අමතක වූවා නම්, අප අර්ථ දක්වා ඇති ස්ථානයට ආපසු යන්න PANTHEON_SITE.

Terminus සමඟ Dockerfile නිර්මාණය කිරීම

ඔබ Docker භාවිතා නොකරන්නේ නම් හෝ ගොනු වලට අකමැති නම් Dockerfile, මගේ රූපය ගන්න registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest සහ මෙම කොටස මඟ හරින්න.

GitLab සතුව බහාලුම් රෙජිස්ට්‍රියක් ඇත, අපට අපගේ ව්‍යාපෘතිය සඳහා Dockerfile ගොඩනගා තැබිය හැකි ස්ථානය. Pantheon එක්ක වැඩ කරන්න Terminus එක්ක Dockerfile එකක් හදමු.

Terminus යනු PHP විධාන රේඛා මෙවලමකි, එබැවින් අපි PHP රූපයෙන් පටන් ගනිමු. මම Composer හරහා Terminus ස්ථාපනය කරනවා, ඒ නිසා මම භාවිතා කරන්නම් නිල ඩොකර් නිර්මාපක රූපය. අපි නිර්මාණය කරනවා 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 කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

කොටස 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/CD කාර්යය සම්පූර්ණ වන තෙක් බලා සිටිමු. ඉවසිලිවන්ත වන්න: multidev නිර්මාණය කිරීමට මිනිත්තු කිහිපයක් ගත විය හැක.

ඊට පස්සේ අපි Pantheon එකේ multidev ලැයිස්තුව බලන්න යනවා. අහෝ ආශ්චර්යය! බහුදේව් පරිසරය mr-2 දැනටමත් මෙහි.

GitLab සහ Pantheon සම්බන්ධ කර Drupal සහ WordPress කාර්ය ප්‍රවාහයන් ප්‍රශස්ත කරන්නේ කෙසේද

නිගමනය

අපි ඒකාබද්ධ කිරීමේ ඉල්ලීම් විවෘත කිරීම සහ ස්වයංක්‍රීයව පරිසරයන් නිර්මාණය කිරීම ආරම්භ කළ විට මගේ කණ්ඩායමට බොහෝ විනෝදයක් ලැබිණි.

GitLab සහ Pantheon හි ප්‍රබල මෙවලම් සමඟින්, ඔබට GitLab ස්වයංක්‍රීයව Pantheon වෙත සම්බන්ධ කළ හැක.

අපි GitLab CI/CD භාවිතා කරන බැවින්, අපගේ කාර්ය ප්‍රවාහයට වර්ධනය වීමට ඉඩ ඇත. ඔබ ආරම්භ කිරීමට අදහස් කිහිපයක් මෙන්න:

  • ගොඩනැගීමේ පියවරක් එක් කරන්න.
  • ස්වයංක්‍රීය පරීක්ෂණ එකතු කරන්න.
  • කේත ප්‍රමිතීන් සපුරා ඇති බව සහතික කිරීමට කාර්යයක් එක් කරන්න.
  • එකතු කරන්න ගතික යෙදුම් ආරක්ෂණ පරීක්ෂණය.

GitLab, Pantheon සහ automation ගැන ඔබ සිතන්නේ කුමක්දැයි අපට දන්වන්න.

PS ඔබ දන්නවාද Terminus, Pantheon හි විධාන රේඛා මෙවලම, ප්ලගින හරහා දිගු කළ හැක?

Pantheon හි අපි අපගේ 2 අනුවාදයේ හොඳ කාර්යයක් කර ඇත්තෙමු Terminus ගොඩනැගීමේ මෙවලම් සඳහා ප්ලගිනය GitLab සහාය ඇතිව. ඔබට එක් එක් ව්‍යාපෘතිය සඳහා සැකසීම් සමඟ කරදර වීමට අවශ්‍ය නැතිනම්, මෙම ප්ලගිනය උත්සාහ කර අපට v2 බීටා පරීක්ෂා කිරීමට උදවු කරන්න. Terminus කණ්ඩායම සඳහා build:project:create ඔබට අවශ්‍ය වන්නේ Pantheon ටෝකනයක් සහ GitLab ටෝකනයක් පමණි. ඇය නියැදි ව්‍යාපෘති වලින් එකක් Composer සහ ස්වයංක්‍රීය පරීක්‍ෂාව සමඟ යොදවනු ඇත, නව Pantheon අඩවියක් වන GitLab හි නව ව්‍යාපෘතියක් නිර්මාණය කරයි, සහ පරිසර විචල්‍යයන් සහ SSH යතුරු භාවිතයෙන් ඒවා සම්බන්ධ කරනු ඇත.

කතුවරයා ගැන

ඇන්ඩෲ ටේලර් සංවර්ධකයින් සඳහා මෙවලම් නිර්මාණය කරයි පැන්තියන්.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න