
අපගේ ආගන්තුක, සංවර්ධක මෙවලම් නිර්මාපක Pantheon, යෙදවීම් ස්වයංක්රීය කරන්නේ කෙසේද යන්න ගැන කතා කරයි. WordPress GitLab CI/CD භාවිතා කරමින්.
В මම සංවර්ධක සම්බන්ධතා ක්ෂේත්රයේ වැඩ කරනවා, ඒ නිසා මම සැමවිටම සංවර්ධකයින්ට උදව් කිරීමට නව ක්රම සොයනවා. WordPress и Drupal වැඩ ප්රවාහයන්හි ස්වයංක්රීයකරණ ගැටළු විසඳන්න. මෙය කිරීමට, නව මෙවලම් අත්හදා බැලීමට සහ වැඩි කාර්යක්ෂමතාවයක් ලබා ගැනීම සඳහා ඒවා ඒකාබද්ධ කිරීමට මම කැමතියි.
සංවර්ධකයින් තනි ස්ටේජින් සේවාදායකයක් සමඟ පොරබදමින් සිටින බව මම බොහෝ විට දකිමි.
අතරමැදි සේවාදායකයක් භාවිතා කිරීමට හෝ සේවාදායකයින්ට URL එකක් යැවීමට ඔබේ වාරය එනතෙක් බලා සිටීම සතුටට කරුණකි: "මෙහි බලන්න, නමුත් තවමත් මෙහි බලන්න එපා."
- සිසිල් Pantheon මෙවලම් වලින් එකක් - මෙම ගැටළුව විසඳයි, මන්ද ඒවා සමඟ ඔබට ඉල්ලුම මත Git ශාඛා සඳහා පරිසරයක් නිර්මාණය කළ හැකිය. සෑම multidev පරිසරයකටම තමන්ගේම URL සහ දත්ත සමුදායක් ඇත, එබැවින් සංවර්ධකයින්ට එකිනෙකාගේ ඇඟිලි නොගසා නිහඬව වැඩ කිරීමට, ගුණාත්මකභාවය පරීක්ෂා කිරීමට සහ අනුමැතිය ලබා ගැනීමට හැකිය.
නමුත් Pantheon සතුව අනුවාද පාලනය හෝ අඛණ්ඩ ඒකාබද්ධ කිරීම සහ යෙදවීම (CI/CD) සඳහා මෙවලම් නොමැත. නමුත් එය ඔබට ඕනෑම මෙවලමක් ඒකාබද්ධ කළ හැකි නම්යශීලී වේදිකාවකි.
කණ්ඩායම් සංවර්ධනය සඳහා ඇතැම් මෙවලම් භාවිතා කරන බවත්, එකලස් කිරීම සහ යෙදවීම සඳහා විවිධ මෙවලම් භාවිතා කරන බවත් මම දුටුවෙමි.
උදාහරණයක් ලෙස, ඔවුන් අනුවාද පාලනය සහ CI/CD සඳහා විවිධ මෙවලම් ඇත. ඔබට කේත සංස්කරණය කිරීමට සහ ගැටළු හඳුනා ගැනීමට මෙවලම් අතර මාරු වීමට සිදුවේ.
මත සම්පූර්ණ සංවර්ධන මෙවලම් කට්ටලයක් ඇත: අනුවාද පාලනය, ප්රවේශපත්ර, ඒකාබද්ධ ඉල්ලීම්, හොඳම පන්තියේ CI/CD නල මාර්ගයක්, බහාලුම් රෙජිස්ට්රියක්, සහ එවැනි සියල්ල සඳහා. ඔබේ සංවර්ධන කාර්ය ප්රවාහය කළමනාකරණය කිරීමට බොහෝ දේ ලබා දෙන යෙදුමක් මට තවම හමු වී නැත.
මම ස්වයංක්රීයකරණයට ප්රිය කරමි, එබැවින් මම Pantheon GitLab වෙත සම්බන්ධ කරන්නේ කෙසේදැයි ඉගෙන ගත්තෙමි, එවිට GitLab හි ප්රධාන ශාඛාව සඳහා කැපවීම Pantheon හි ප්රධාන සංවර්ධන පරිසරය වෙත යොදවනු ලැබේ. තවද GitLab මත ඉල්ලීම් ඒකාබද්ධ කිරීම Pantheon හි බහුදේව් පරිසරයන් වෙත කේතය නිර්මාණය කිරීමට සහ යෙදවීමට හැකිය.
මෙම මාර්ගෝපදේශය තුළ, GitLab සහ Pantheon අතර සම්බන්ධතාවයක් සකසා ඔබේ වැඩ ප්රවාහය ප්රශස්ත කරන්නේ කෙසේදැයි මම ඔබට පෙන්වන්නම්. WordPress и Drupal.
ඇත්ත වශයෙන්ම එය හැකි ය, , නමුත් අපි සොයා බැලීමට අපගේ දෑතින් සෑම දෙයක්ම කරන්නෙමු සහ අනාගතයේ දී මෙම මෙවලම යෙදවීම සඳහා පමණක් භාවිතා කරන්න.
හැඳින්වීම
මෙම පළ කිරීම සඳහා, Pantheon එක් එක් වෙබ් අඩවිය මූලද්රව්ය තුනකට කඩා දමන බව ඔබ තේරුම් ගත යුතුය: කේතය, දත්ත සමුදාය සහ ගොනු.
කේතයට හරය, ප්ලගීන සහ තේමා වැනි CMS ගොනු ඇතුළත් වේ. WordPressමෙම ගොනු කළමනාකරණය කරනු ලබන්නේ , Pantheon විසින් සත්කාරකත්වය දරනු ලැබේ, එයින් අදහස් වන්නේ අපට Git සමඟ GitLab සිට Pantheon දක්වා කේතය යෙදවිය හැකි බවයි.
Pantheon හි ඇති ගොනු මාධ්ය ගොනු, එනම් වෙබ් අඩවිය සඳහා වන පින්තූර වේ. සාමාන්යයෙන් ඒවා පරිශීලකයන් විසින් උඩුගත කරනු ලබන අතර Git ඒවා නොසලකා හරියි.
, ගැන වැඩි විස්තර දැනගන්න හෝ pantheon.io හි.
උපකල්පන
Pantheon සහ GitLab පිළිබඳ මගේ ව්යාපෘතිය ලෙස හැඳින්වේ pantheon-gitlab-blog-demoව්යාපෘති නාමය අනන්ය විය යුතුයි. අපි මෙහි වෙබ් අඩවියක් සමඟ වැඩ කරන්නෙමු. WordPressඔයාටත් ගන්න පුළුවන්. Drupal, නමුත් සමහර දේවල් වෙනස් කිරීමට සිදුවනු ඇත.
මම පාවිච්චි කරන්නම් සහ ඔබට වැඩ කළ හැකිය , ඔබට අවශ්ය නම්.
ව්යාපෘතියක් සාදන්න
පළමුව, අපි නිර්මාණය කරමු (අපි මේ ගැන පසුව එන්නෙමු).
දැන් ඊට පස්සේ අපි ඒක install කරනවා. WordPress වෙබ් අඩවි උපකරණ පුවරුව සඳහා.
යමක් වෙනස් කිරීමට ඔබේ දෑත් කැසීම නම්, උදාහරණයක් ලෙස, ප්ලගීන ඉවත් කිරීම හෝ එකතු කිරීම, ඉවසන්න. වෙබ් අඩවිය තවමත් GitLab වෙත සම්බන්ධ වී නොමැති අතර, සියලුම කේත වෙනස් කිරීම් GitLab හරහා යාමට අපට අවශ්යය.
අපි එය ස්ථාපනය කරන්නේ කවදාද? WordPress, Pantheon වෙබ් අඩවි උපකරණ පුවරුව වෙත ආපසු ගොස් සංවර්ධන මාදිලිය Git ලෙස වෙනස් කරන්න.
GitLab හි මූලික කැපවීම
දැන් ඔබට මූලික කේතය මාරු කිරීමට අවශ්යයි. WordPress Pantheon වෙබ් අඩවියෙන් GitLab වෙත. මෙය සිදු කිරීම සඳහා, අපි Pantheon වෙබ් අඩවියේ Git ගබඩාවෙන් කේතය දේශීයව ක්ලෝන කර පසුව එය GitLab ගබඩාවට තල්ලු කරමු.
එය පහසු සහ ආරක්ෂිත කිරීමට, අපි Pantheon Git ගබඩාවක් ක්ලෝන කරන සෑම අවස්ථාවකම මුරපදයක් ඇතුළත් කිරීමට අපට සිදු නොවේ. ඒ සමගම දැනටමත් .
මෙය සිදු කිරීම සඳහා, අඩවි උපකරණ පුවරුවේ ඇති Clone with Git ක්ෂේත්රයෙන් විධානය පිටපත් කිරීමෙන් Pantheon අඩවිය දේශීයව ක්ලෝන කරන්න.
ඔබට උදව් අවශ්ය නම්, ලේඛන කියවන්න .
දැන් අපි වෙනස් වෙමු git remote originPantheon වෙනුවට GitLab වෙත යොමු කිරීමට. එය කළ හැකිය .
අපි GitLab ව්යාපෘතියට ගොස් ව්යාපෘති විස්තර පිටුවේ ඇති Clone පතනයෙන් ගබඩා URL එක පිටපත් කරමු. අපි දැනටමත් SSH යතුර වින්යාස කර ඇති නිසා, SSH සමඟ Clone විකල්පය තෝරා ගනිමු.
පෙරනිමියෙන් git remote කේත ගබඩාවේ දේශීය පිටපතක් සඳහා - origin. මෙය වෙනස් කළ හැක c git remote set-url origin [URL репозитория GitLab], වරහන් වෙනුවට අපි සත්ය URL එක ඇතුල් කරන්නෙමු.
අවසාන වශයෙන්, අපි දියත් කරමු git push origin master --forceකේතය යැවීමට WordPress GitLab හි Pantheon අඩවියෙන්.
බල විකල්පය අවශ්ය වන්නේ එක් වරක් පමණි. ඉන්පසු කණ්ඩායම් වශයෙන්
git pushඑය GitLab මත නොවනු ඇත.
අක්තපත්ර සහ විචල්යයන් සැකසීම
Pantheon සහ GitLab වෙත ලොග් වීමට අපි දේශීයව SSH යතුරක් එක් කළ ආකාරය මතකද? GitLab සහ Pantheon අවසර දීමට SSH ටෝකනය භාවිතා කළ හැක.
GitLab සතුව විශිෂ්ට ලියකියවිලි ඇත. අපි බලමු .
අපි දැන් පළමු පියවර දෙක සම්පූර්ණ කරන්නෙමු: අපි ssh-keygen සමඟ දේශීයව නව SSH යතුරු යුගලයක් සාදා ව්යාපෘතියට විචල්යයක් ලෙස පුද්ගලික යතුර එක් කරමු..
එතකොට අපි අහන්නම් SSH_PRIVATE_KEY ආකාරය ව්යාපෘති සැකසුම් තුළ.
තුන්වන සහ සිව්වන පියවරේදී අපි ගොනුවක් සාදන්නෙමු .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 වෙත ප්රවේශ වීමට අවශ්යය. අපි තොරණ ලේඛනයේ උපදෙස් අනුගමනය කරමු සහ මෙම පියවර සිදු කරන්න.
මතක තබා ගන්න: පුද්ගලික SSH GitLab හි ඇත, විවෘත SSH Pantheon හි ඇත.
අපි තවත් පරිසර විචල්ය කිහිපයක් සකස් කරමු. පළමු එක PANTHEON_SITE ලෙස හැඳින්වේ. එහි වටිනාකම ඔබේ යන්ත්රයේ ඇති තොරණ අඩවියේ නමයි.
යන්ත්රයේ නම Git විධානය සමඟ Clone අවසානයේ ලැයිස්තුගත කර ඇත. ඔබ දැනටමත් වෙබ් අඩවිය දේශීයව ක්ලෝන කර ඇත, එබැවින් මෙය දේශීය ගබඩා නාමාවලියේ නම වනු ඇත.
මීළඟට අපි පරිසර විචල්යය සකස් කරමු 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 තොරණේ. අපි බලමු.
Pantheon වෙත ඒකාබද්ධ ඉල්ලීම් නූල් යවමින්
මෙන්න අපි මගේ ප්රියතම Pantheon විශේෂාංගය භාවිතා කරමු - , ඔබට ඉල්ලුම මත Git ශාඛා සඳහා අමතර Pantheon පරිසරයන් නිර්මාණය කළ හැකිය.
, එබැවින් මෙම කොටස මඟ හැරිය හැක. නමුත් ඔබට ප්රවේශය තිබේ නම්, 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එබීමෙන් ඒකාබද්ධ ඉල්ලීමක් සාදන්න.
ඒකාබද්ධ ඉල්ලීමක් නිර්මාණය කිරීමෙන් පසු, අපි CI/CD කාර්යය ක්රියාත්මක කරන්නේ කෙසේදැයි බලමු deploy:multidev.
ඔන්න තොරණට අලුත් ත්රෙඩ් එකක් එවලා තියෙනවා. නමුත් අපි Pantheon අඩවි උපකරණ පුවරුවේ multidev කොටසට ගියහොත්, අපට එහි නව පරිසරය නොපෙනේ
Git Branches කොටස බලමු.
එහි ප්රතිඵලයක් වශයෙන්, අපේ නූල් mr-1 තොරණට ගියා. ශාඛාවකින් පරිසරයක් නිර්මාණය කරමු mr-1.
අපි 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 සමඟ බහාලුම් රූපයක් අවශ්ය වේ.
, එය ආරක්ෂිත ස්ථානයක සුරකින්න සහ නම සමඟ GitLab හි ගෝලීය පරිසර විචල්යයක් ලෙස එක් කරන්න PANTHEON_MACHINE_TOKEN.
GitLab පරිසර විචල්ය එකතු කරන්නේ කෙසේදැයි ඔබට අමතක වූවා නම්, අප අර්ථ දක්වා ඇති ස්ථානයට ආපසු යන්න
PANTHEON_SITE.
Terminus සමඟ Dockerfile නිර්මාණය කිරීම
ඔබ Docker භාවිතා නොකරන්නේ නම් හෝ ගොනු වලට අකමැති නම් Dockerfile, මගේ රූපය ගන්න registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest සහ මෙම කොටස මඟ හරින්න.
, අපට අපගේ ව්යාපෘතිය සඳහා 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.
කොටස 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පිටපත පුද්ගලික නාමාවලියක සහ . අපගේ බහුදේව් තර්කනය සඳහා ස්ක්රිප්ට් එකක් අප සතුව ඇත. අපි දැන් කොටස යාවත්කාලීන කරමු 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 හි ප්රබල මෙවලම් සමඟින්, ඔබට GitLab ස්වයංක්රීයව Pantheon වෙත සම්බන්ධ කළ හැක.
අපි GitLab CI/CD භාවිතා කරන බැවින්, අපගේ කාර්ය ප්රවාහයට වර්ධනය වීමට ඉඩ ඇත. ඔබ ආරම්භ කිරීමට අදහස් කිහිපයක් මෙන්න:
- ගොඩනැගීමේ පියවරක් එක් කරන්න.
- ස්වයංක්රීය පරීක්ෂණ එකතු කරන්න.
- කේත ප්රමිතීන් සපුරා ඇති බව සහතික කිරීමට කාර්යයක් එක් කරන්න.
- එකතු කරන්න .
GitLab, Pantheon සහ automation ගැන ඔබ සිතන්නේ කුමක්දැයි අපට දන්වන්න.
PS ඔබ දන්නවාද Terminus, Pantheon හි විධාන රේඛා මෙවලම, ?
Pantheon හි අපි අපගේ 2 අනුවාදයේ හොඳ කාර්යයක් කර ඇත්තෙමු GitLab සහාය ඇතිව. ඔබට එක් එක් ව්යාපෘතිය සඳහා සැකසීම් සමඟ කරදර වීමට අවශ්ය නැතිනම්, මෙම ප්ලගිනය උත්සාහ කර අපට v2 බීටා පරීක්ෂා කිරීමට උදවු කරන්න. Terminus කණ්ඩායම සඳහා build:project:create ඔබට අවශ්ය වන්නේ Pantheon ටෝකනයක් සහ GitLab ටෝකනයක් පමණි. ඇය නියැදි ව්යාපෘති වලින් එකක් Composer සහ ස්වයංක්රීය පරීක්ෂාව සමඟ යොදවනු ඇත, නව Pantheon අඩවියක් වන GitLab හි නව ව්යාපෘතියක් නිර්මාණය කරයි, සහ පරිසර විචල්යයන් සහ SSH යතුරු භාවිතයෙන් ඒවා සම්බන්ධ කරනු ඇත.
කතුවරයා ගැන
ඇන්ඩෲ ටේලර් සංවර්ධකයින් සඳහා මෙවලම් නිර්මාණය කරයි .
මූලාශ්රය: www.habr.com
