
మన అతిథి, డెవలపర్ టూల్ సృష్టికర్త అయిన పాంథియాన్, డిప్లాయ్మెంట్లను ఎలా ఆటోమేట్ చేయాలో వివరిస్తారు. WordPress గిట్ల్యాబ్ CI/CDని ఉపయోగించడం.
В నేను డెవలపర్ రిలేషన్స్ విభాగంలో పనిచేస్తాను, కాబట్టి డెవలపర్లకు సహాయం చేయడానికి కొత్త మార్గాల కోసం నేను ఎల్లప్పుడూ వెతుకుతూ ఉంటాను. WordPress и Drupal వర్క్ఫ్లోలలో ఆటోమేషన్ సమస్యలను పరిష్కరించండి. దీని కోసం, నేను కొత్త సాధనాలతో ప్రయోగాలు చేయడం మరియు అధిక సామర్థ్యాన్ని సాధించడానికి వాటిని కలపడం ఇష్టపడతాను.
డెవలపర్లు ఒకే స్టేజింగ్ సర్వర్తో కష్టపడడాన్ని నేను తరచుగా చూస్తాను.
ఇంటర్మీడియట్ సర్వర్ని ఉపయోగించడానికి లేదా క్లయింట్లకు URLని పంపడానికి మీ వంతు కోసం వేచి ఉండటం చాలా ఆనందంగా ఉంది: "ఇక్కడ చూడండి, కానీ ఇంకా ఇక్కడ చూడకండి."
- చల్లని పాంథియోన్ సాధనాల్లో ఒకటి - ఈ సమస్యను పరిష్కరిస్తుంది, ఎందుకంటే వాటితో మీరు డిమాండ్పై Git శాఖల కోసం వాతావరణాలను సృష్టించవచ్చు. ప్రతి మల్టీదేవ్ పర్యావరణం దాని స్వంత URL మరియు డేటాబేస్ను కలిగి ఉంటుంది, కాబట్టి డెవలపర్లు ఒకరి కాలి వేళ్లతో మరొకరు అడుగు పెట్టకుండా నిశ్శబ్దంగా పని చేయవచ్చు, నాణ్యతను తనిఖీ చేయవచ్చు మరియు ఆమోదం పొందవచ్చు.
కానీ పాంథియోన్లో వెర్షన్ నియంత్రణ లేదా నిరంతర ఏకీకరణ మరియు విస్తరణ (CI/CD) కోసం సాధనాలు లేవు. కానీ ఇది సౌకర్యవంతమైన ప్లాట్ఫారమ్, దానితో మీరు ఏదైనా సాధనాలను ఏకీకృతం చేయవచ్చు.
టీమ్లు డెవలప్మెంట్ కోసం కొన్ని టూల్స్ని, అసెంబ్లీ మరియు డిప్లాయ్మెంట్ కోసం వేరే వాటిని ఉపయోగిస్తాయని కూడా నేను గమనించాను.
ఉదాహరణకు, వారు వెర్షన్ నియంత్రణ మరియు CI/CD కోసం వేర్వేరు సాధనాలను కలిగి ఉన్నారు. కోడ్ని ఎడిట్ చేయడానికి మరియు సమస్యలను నిర్ధారించడానికి మీరు ఫిడేలు చేయాలి మరియు సాధనాల మధ్య మారాలి.
ఆఫ్ పూర్తి డెవలప్మెంట్ సాధనాల సెట్ ఉంది: సంస్కరణ నియంత్రణ, టిక్కెట్లు, విలీన అభ్యర్థనలు, అత్యుత్తమ CI/CD పైప్లైన్, కంటైనర్ రిజిస్ట్రీ మరియు అలాంటి ప్రతిదాని కోసం. మీ డెవలప్మెంట్ వర్క్ఫ్లో నిర్వహించడానికి చాలా ఆఫర్లను అందించే అప్లికేషన్ను నేను ఇంకా చూడలేదు.
నేను ఆటోమేషన్ను ఇష్టపడుతున్నాను, కాబట్టి నేను పాంథియోన్ని GitLabకి ఎలా కనెక్ట్ చేయాలో నేర్చుకున్నాను, తద్వారా GitLabలోని ప్రధాన శాఖకు కట్టుబడి ఉండేవి పాంథియోన్లోని ప్రధాన అభివృద్ధి వాతావరణానికి పంపబడతాయి. మరియు GitLabలో విలీన అభ్యర్థనలు పాంథియోన్లోని మల్టీదేవ్ ఎన్విరాన్మెంట్లకు కోడ్ని సృష్టించవచ్చు మరియు అమలు చేయగలవు.
ఈ గైడ్లో, GitLab మరియు Pantheon మధ్య కనెక్షన్ను ఎలా ఏర్పాటు చేయాలో మరియు మీ వర్క్ఫ్లోను ఎలా ఆప్టిమైజ్ చేయాలో నేను మీకు చూపిస్తాను. WordPress и Drupal.
వాస్తవానికి ఇది సాధ్యమే, , కానీ మేము లోతుగా పరిశోధించడానికి మా చేతులతో ప్రతిదీ చేస్తాము మరియు భవిష్యత్తులో ఈ సాధనాన్ని విస్తరణకు మాత్రమే కాకుండా ఉపయోగించండి.
పరిచయం
ఈ పోస్ట్ కోసం, పాంథియోన్ ప్రతి సైట్ను కోడ్, డేటాబేస్ మరియు ఫైల్లు అనే మూడు మూలకాలుగా విభజించిందని మీరు అర్థం చేసుకోవాలి.
ఈ కోడ్లో కోర్, ప్లగిన్లు మరియు థీమ్ల వంటి CMS ఫైల్లు ఉంటాయి. WordPressఈ ఫైల్లు ఇందులో నిర్వహించబడతాయి , పాంథియోన్ ద్వారా హోస్ట్ చేయబడింది, అంటే మనం Gitతో GitLab నుండి Pantheonకి కోడ్ని అమలు చేయవచ్చు.
పాంథియోన్లోని ఫైల్లు మీడియా ఫైల్లు, అంటే సైట్ కోసం చిత్రాలు. సాధారణంగా వాటిని వినియోగదారులు అప్లోడ్ చేస్తారు మరియు Git వాటిని విస్మరిస్తుంది.
, గురించి మరింత తెలుసుకోండి లేదా pantheon.ioలో.
ఊహలు
Pantheon మరియు GitLabపై నా ప్రాజెక్ట్ అంటారు pantheon-gitlab-blog-demoప్రాజెక్ట్ పేరు ప్రత్యేకంగా ఉండాలి. మనం ఇక్కడ ఒక వెబ్సైట్తో పని చేస్తాము. WordPressమీరు కూడా తీసుకోవచ్చు Drupalఅయితే, కొన్ని విషయాలు మార్చవలసి ఉంటుంది.
నేను ఉపయోగిస్తాను మరియు మీరు పని చేయవచ్చు , నీకు కావాలంటే.
ప్రాజెక్ట్ను రూపొందించండి
మొదట, సృష్టిద్దాం (మేము దీని తరువాత తిరిగి వస్తాము).
ఇప్పుడు తరువాత మనం దానిని అమర్చుతాము. WordPress వెబ్సైట్ డాష్బోర్డ్ కోసం.
మీ చేతులు ఏదైనా మార్చడానికి దురదగా ఉంటే, ఉదాహరణకు, ప్లగిన్లను తీసివేయండి లేదా జోడించండి, ఓపికపట్టండి. సైట్ ఇంకా GitLabకి కనెక్ట్ చేయబడలేదు మరియు మేము అన్ని కోడ్ మార్పులను GitLab ద్వారా చేయాలనుకుంటున్నాము.
మనం దానిని ఎప్పుడు ఇన్స్టాల్ చేస్తాము? WordPressపాంథియాన్ వెబ్సైట్ డాష్బోర్డ్కు తిరిగి వెళ్లి, డెవలప్మెంట్ మోడ్ను గిట్కు మార్చండి.
GitLabపై ప్రారంభ నిబద్ధత
ఇప్పుడు మీరు ప్రారంభ కోడ్ను బదిలీ చేయాలి WordPress పాంథియాన్ వెబ్సైట్ నుండి గిట్ల్యాబ్కు. ఇలా చేయడానికి, మనం పాంథియాన్ వెబ్సైట్ యొక్క గిట్ రిపోజిటరీ నుండి కోడ్ను స్థానికంగా క్లోన్ చేసి, ఆపై దానిని గిట్ల్యాబ్ రిపోజిటరీకి పుష్ చేస్తాము.
సులభంగా మరియు సురక్షితంగా చేయడానికి, మరియు మనం పాంథియోన్ Git రిపోజిటరీని క్లోన్ చేసిన ప్రతిసారీ పాస్వర్డ్ను నమోదు చేయనవసరం లేదు. అదే సమయంలో ఇప్పటికే .
దీన్ని చేయడానికి, వెబ్సైట్ డాష్బోర్డ్లోని క్లోన్ విత్ Git ఫీల్డ్ నుండి కమాండ్ను కాపీ చేయడం ద్వారా పాంథియోన్ వెబ్సైట్ను స్థానికంగా క్లోన్ చేయండి.
మీకు సహాయం కావాలంటే, డాక్యుమెంటేషన్ చదవండి .
ఇప్పుడు మారదాం git remote originపాంథియోన్కు బదులుగా GitLabని సూచించడానికి. ఇది చేయవచ్చు .
GitLab ప్రాజెక్ట్కి వెళ్లి, ప్రాజెక్ట్ వివరాల పేజీలోని క్లోన్ డ్రాప్డౌన్ నుండి రిపోజిటరీ URLని కాపీ చేద్దాం. SSH ఎంపికతో క్లోన్ని ఎంచుకుందాం, ఎందుకంటే మనం ఇప్పటికే SSH కీని కాన్ఫిగర్ చేసాము.
అప్రమేయంగా git remote కోడ్ రిపోజిటరీ యొక్క స్థానిక కాపీ కోసం - origin. దీనిని మార్చవచ్చు c git remote set-url origin [URL репозитория GitLab], బ్రాకెట్లకు బదులుగా మనం అసలు URLని నమోదు చేస్తాము.
చివరగా, మేము ప్రారంభించాము git push origin master --forceకోడ్ను పంపడానికి WordPress గిట్ల్యాబ్లోని పాంథియాన్ సైట్ నుండి.
-ఫోర్స్ ఎంపిక ఒక్కసారి మాత్రమే అవసరం. ఆపై జట్లలో
git pushఇది GitLabలో ఉండదు.
ఆధారాలు మరియు వేరియబుల్లను సెటప్ చేస్తోంది
Pantheon మరియు GitLabకి లాగిన్ చేయడానికి మేము స్థానికంగా SSH కీని ఎలా జోడించామో గుర్తుందా? GitLab మరియు పాంథియోన్ను ప్రామాణీకరించడానికి 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 నుండి పాంథియోన్ని యాక్సెస్ చేయాలనుకుంటున్నాము. మేము పాంథియోన్ పత్రంలోని సూచనలను అనుసరిస్తాము మరియు ఈ దశను అమలు చేయండి.
గుర్తుంచుకోండి: ప్రైవేట్ SSH GitLabలో ఉంది, ఓపెన్ SSH పాంథియోన్లో ఉంది.
మరికొన్ని పర్యావరణ వేరియబుల్స్ని సెటప్ చేద్దాం. మొదటిది PANTHEON_SITE. దీని విలువ మీ మెషీన్లోని పాంథియోన్ సైట్ పేరు.
మెషీన్లోని పేరు Git కమాండ్తో క్లోన్ చివరిలో జాబితా చేయబడింది. మీరు ఇప్పటికే సైట్ను స్థానికంగా క్లోన్ చేసారు, కనుక ఇది స్థానిక రిపోజిటరీ డైరెక్టరీ పేరు.
తరువాత, పర్యావరణ వేరియబుల్ని సెటప్ చేద్దాం PANTHEON_GIT_URL. ఇది మేము ఇప్పటికే ఉపయోగించిన Pantheon సైట్ కోసం Git రిపోజిటరీ URL.
లేకుండా SSH రిపోజిటరీ URLని మాత్రమే నమోదు చేయండి
git cloneమరియు చివరిలో మెషీన్లో సైట్ పేరు.
ఫ్యూ. అది పూర్తయింది, ఇప్పుడు మనం మన ఫైల్ని పూర్తి చేయవచ్చు .gitlab-ci.yml.
విస్తరణ పనిని సృష్టించండి
మేము మొదట్లో GitLab CIతో చేయబోయేది మనం గతంలో Git రిపోజిటరీలతో చేసిన దానికి చాలా పోలి ఉంటుంది. కానీ ఈసారి, పాంథియోన్ రిపోజిటరీని రెండవ రిమోట్ Git మూలంగా జోడించి, ఆపై GitLab నుండి పాంథియోన్కి కోడ్ను పుష్ చేద్దాం.
దీన్ని చేయడానికి, కాన్ఫిగర్ చేద్దాం 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 పాంథియోన్ వద్ద. చూద్దాం.
పాంథియోన్కు విలీన అభ్యర్థన థ్రెడ్లను పంపుతోంది
ఇక్కడ మేము నాకు ఇష్టమైన పాంథియోన్ లక్షణాన్ని ఉపయోగిస్తాము - , ఇక్కడ మీరు డిమాండ్పై Git శాఖల కోసం అదనపు పాంథియోన్ వాతావరణాలను సృష్టించవచ్చు.
, కాబట్టి ఈ విభాగాన్ని దాటవేయవచ్చు. కానీ మీకు యాక్సెస్ ఉంటే, మీరు GitLab విలీన అభ్యర్థనల నుండి పాంథియోన్లో మల్టీదేవ్ ఎన్విరాన్మెంట్ల స్వయంచాలక సృష్టిని సెటప్ చేయడం ద్వారా ఉత్పాదకతను తీవ్రంగా పెంచుకోవచ్చు.
ముందుగా స్థానికంగా కొత్త Git శాఖను తయారు చేద్దాం git checkout -b multidev-support. ఇప్పుడు మళ్ళీ ఏదో మార్పు చేద్దాం .gitlab-ci.yml.
నేను పాంథియోన్ పర్యావరణం పేరులో విలీన అభ్యర్థన సంఖ్యను చేర్చాలనుకుంటున్నాను. ఉదాహరణకు, మొదటి విలీన అభ్యర్థన mr-1, రెండవ - mr-2 మొదలైనవి
విలీన అభ్యర్థన మారుతుంది, కాబట్టి మేము పాంథియోన్ శాఖ పేర్లను డైనమిక్గా గుర్తించాలి. GitLabలో ఇది సులభం - మీరు ఉపయోగించాల్సి ఉంటుంది .
మనం తీసుకోవచ్చు $CI_MERGE_REQUEST_IIDవిలీన అభ్యర్థన సంఖ్యను పేర్కొనడానికి. మనం ఇంతకు ముందు పేర్కొన్న గ్లోబల్ ఎన్విరాన్మెంట్ వేరియబుల్స్తో పాటు వీటన్నింటిని వర్తింపజేద్దాం మరియు ఫైల్ చివరిలో కొత్త డిప్లాయ్:మల్టీదేవ్ టాస్క్ని జోడిద్దాం .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.
చూడండి, పాంథియోన్కి కొత్త థ్రెడ్ పంపబడింది. కానీ మనం పాంథియోన్ సైట్ డ్యాష్బోర్డ్లోని మల్టీదేవ్ విభాగానికి వెళితే, అక్కడ మనకు కొత్త వాతావరణం కనిపించదు
Git శాఖల విభాగాన్ని చూద్దాం.
ఫలితంగా, మా థ్రెడ్ mr-1 పాంథియోన్ వచ్చింది. ఒక శాఖ నుండి వాతావరణాన్ని సృష్టిద్దాం mr-1.
మేము మల్టీదేవ్ వాతావరణాన్ని సృష్టించాము, ఇప్పుడు GitLabకి తిరిగి వెళ్లి విభాగాన్ని చూద్దాం కార్యకలాపాలు > పర్యావరణాలు. కోసం ఎంట్రీలను చూస్తాము dev и mr-1.
ఎందుకంటే మేము ఒక ఎంట్రీని జోడించాము environment పేరుతో name и url CI/CD టాస్క్లలోకి. మనం ఓపెన్ ఎన్విరాన్మెంట్ ఐకాన్పై క్లిక్ చేస్తే, మనం పాంథియోన్లోని మల్టీదేవ్ ఎన్విరాన్మెంట్ యొక్క URLకి తీసుకెళ్లబడతాము.
మల్టీదేవ్ సృష్టిని ఆటోమేట్ చేయండి
సూత్రప్రాయంగా, మీరు ఇక్కడ ఆపివేయవచ్చు మరియు ప్రతి విలీన అభ్యర్థన కోసం మల్టీదేవ్ వాతావరణాన్ని సృష్టించాలని గుర్తుంచుకోండి, కానీ ఈ ప్రక్రియ స్వయంచాలకంగా చేయవచ్చు.
పాంథియోన్ కమాండ్ లైన్ సాధనాన్ని కలిగి ఉంది , ఇక్కడ మీరు ప్లాట్ఫారమ్తో స్వయంచాలకంగా పని చేయవచ్చు. టెర్మినస్ కమాండ్ లైన్ నుండి మల్టీదేవ్ ఎన్విరాన్మెంట్లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది - దీనికి అనువైనది .
దీన్ని పరీక్షించడానికి మాకు కొత్త విలీన అభ్యర్థన అవసరం. ఉపయోగించి కొత్త బ్రాంచ్ని క్రియేట్ చేద్దాం git checkout -b auto-multidev-creation.
GitLab CI/CD టాస్క్లలో టెర్మినస్ని ఉపయోగించడానికి, మీకు టెర్మినస్తో ప్రామాణీకరణ కోసం మెషిన్ టోకెన్ మరియు టెర్మినస్తో కంటైనర్ ఇమేజ్ అవసరం.
, దీన్ని సురక్షితమైన స్థలంలో సేవ్ చేయండి మరియు పేరుతో GitLabలో గ్లోబల్ ఎన్విరాన్మెంట్ వేరియబుల్గా జోడించండి PANTHEON_MACHINE_TOKEN.
మీరు GitLab ఎన్విరాన్మెంట్ వేరియబుల్స్ని ఎలా జోడించాలో మర్చిపోతే, మేము నిర్వచించిన చోటికి తిరిగి వెళ్లండి
PANTHEON_SITE.
టెర్మినస్తో డాకర్ఫైల్ను సృష్టిస్తోంది
మీరు డాకర్ని ఉపయోగించకుంటే లేదా ఫైల్లను ఇష్టపడకపోతే Dockerfile, నా చిత్రాన్ని తీయండి registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest మరియు ఈ విభాగాన్ని దాటవేయండి.
, మేము మా ప్రాజెక్ట్ కోసం డాకర్ఫైల్ను ఎక్కడ నిర్మించవచ్చు మరియు ఉంచవచ్చు. పాంథియోన్తో పని చేయడానికి టెర్మినస్తో డాకర్ఫైల్ని క్రియేట్ చేద్దాం.
టెర్మినస్ అనేది PHP కమాండ్ లైన్ సాధనం, కాబట్టి PHP ఇమేజ్తో ప్రారంభిద్దాం. నేను కంపోజర్ ద్వారా టెర్మినస్ని ఇన్స్టాల్ చేస్తున్నాను, కాబట్టి నేను ఉపయోగిస్తాను . మేము సృష్టిస్తాము 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 సృష్టించడానికి చాలా నిమిషాలు పట్టవచ్చు.
అప్పుడు మేము పాంథియోన్లోని మల్టీదేవ్ జాబితాను చూస్తాము. ఓ అద్భుతం! మల్టీదేవ్ పర్యావరణం mr-2 ఇప్పటికే ఇక్కడ.
తీర్మానం
మేము విలీన అభ్యర్థనలను తెరవడం మరియు స్వయంచాలకంగా పర్యావరణాలను సృష్టించడం ప్రారంభించినప్పుడు నా బృందం చాలా ఆనందాన్ని పొందింది.
GitLab మరియు Pantheon యొక్క శక్తివంతమైన సాధనాలతో, మీరు GitLabని పాంథియోన్కు స్వయంచాలకంగా కనెక్ట్ చేయవచ్చు.
మేము GitLab CI/CDని ఉపయోగిస్తున్నందున, మా వర్క్ఫ్లో పెరగడానికి అవకాశం ఉంటుంది. మీరు ప్రారంభించడానికి ఇక్కడ కొన్ని ఆలోచనలు ఉన్నాయి:
- నిర్మాణ దశను జోడించండి.
- స్వయంచాలక పరీక్షను జోడించండి.
- కోడ్ ప్రమాణాలకు అనుగుణంగా ఉండేలా టాస్క్ని జోడించండి.
- చేర్చు .
GitLab, Pantheon మరియు ఆటోమేషన్ గురించి మీరు ఏమనుకుంటున్నారో మాకు తెలియజేయండి.
PS మీకు తెలుసా టెర్మినస్, పాంథియోన్ యొక్క కమాండ్ లైన్ సాధనం, ?
పాంథియోన్లో మేము మా వెర్షన్ 2లో మంచి పని చేసాము GitLab మద్దతుతో. మీరు ప్రతి ప్రాజెక్ట్ కోసం సెట్టింగ్లతో ఇబ్బంది పడకూడదనుకుంటే, ఈ ప్లగ్ఇన్ని ప్రయత్నించండి మరియు v2 బీటాని పరీక్షించడంలో మాకు సహాయపడండి. టెర్మినస్ జట్టు కోసం build:project:create మీకు పాంథియోన్ టోకెన్ మరియు GitLab టోకెన్ మాత్రమే అవసరం. ఆమె కంపోజర్ మరియు ఆటోమేటెడ్ టెస్టింగ్తో నమూనా ప్రాజెక్ట్లలో ఒకదానిని అమలు చేస్తుంది, కొత్త పాంథియోన్ సైట్ GitLabలో కొత్త ప్రాజెక్ట్ను సృష్టిస్తుంది మరియు వాటిని ఎన్విరాన్మెంట్ వేరియబుల్స్ మరియు SSH కీలను ఉపయోగించి కనెక్ట్ చేస్తుంది.
రచయిత గురించి
ఆండ్రూ టేలర్ డెవలపర్ల కోసం సాధనాలను సృష్టిస్తాడు .
మూలం: www.habr.com
