ሰላም፣ ሰላም!
በBitBucket በኩል በGitLab እና AppCenter መካከል ውህደትን በማቋቋም ረገድ ያለኝን ልምድ ማካፈል እፈልጋለሁ።
የዚህ ውህደት አስፈላጊነት የተፈጠረው ለሸካራ መድረክ የXamarin ፕሮጀክት አውቶማቲክ የUI ሙከራ አፈፃፀምን በማዘጋጀት ላይ እያለ ነው። ዝርዝር አጋዥ ስልጠና ከዚህ በታች ቀርቧል!
* ህዝቡ ፍላጎት ካለው በፕላትፎርም አካባቢ ውስጥ የUI ሙከራን በራስ-ሰር ስለማድረግ የተለየ ጽሑፍ እጽፋለሁ።
አንድ ተመሳሳይ ቁሳቁስ ብቻ ነው የቆፈርኩት ስለዚህ፣ ጽሑፌ አንድን ሰው ሊረዳ ይችላል።
ዓላማ: ቡድናችን GitLabን እንደ የስሪት መቆጣጠሪያ ስርዓት ስለሚጠቀም በAppCenter ላይ የUI ሙከራዎችን በራስ-ሰር ማስጀመር ያዋቅሩ።
ችግር AppCenter በቀጥታ ከGitLab ጋር እንደማይዋሃድ ታወቀ። በBitBucket በኩል የሚደረግ መፍትሔ እንደ መፍትሔ አንዱ ተመርጧል።
እርምጃዎች
1. በ BitBucket ላይ ባዶ ማከማቻ ይፍጠሩ
ይህንን በዝርዝር መግለጽ አስፈላጊ አይመስለኝም 🙂
2. GitLabን ማዋቀር
ለውጦች ወደ ማከማቻው እንዲገፉ/እንዲዋሃዱ እና ወደ BitBucket እንዲገፉ እንፈልጋለን። ይህንን ለማድረግ፣ ሯጭ እንጨምራለን (ወይም አሁን ያለውን .gitlab-ci.yml ፋይል አርትዕ እናደርጋለን)።
በመጀመሪያ፣ በbefore_scripts ክፍል ላይ ትዕዛዞችን ያክሉ።
- git config --global user.email "user@email"
- git config --global user.name "username"ከዚያም የሚከተለውን ትዕዛዝ ወደሚፈለገው ደረጃ እንጨምራለን፡
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitበእኔ ሁኔታ እንደዚህ አይነት ፋይል አለኝ
before_script:
- git config --global user.email "user@email"
- git config --global user.name "username"
stages:
- mirror
mirror:
stage: mirror
script:
- git push --mirror https://****:*****@bitbucket.org/****/testapp.gitግንባታውን እናስኬዳለን እና ለውጦቻችን/ፋይሎቻችን ወደ BitBucket መሰቀላቸውን እናረጋግጣለን።
* ልምምድ እንደሚያሳየው የSSH ቁልፎችን ማዋቀር አማራጭ ነው። ግን እንደዚያ ከሆነ፣ በSSH በኩል ግንኙነት ለማዋቀር ስልተ ቀመሩን ከዚህ በታች አቀርባለሁ።
በኤስኤስኤች በኩል ግንኙነት
በመጀመሪያ፣ የSSH ቁልፍ ማመንጨት ያስፈልግዎታል። ስለዚህ ጉዳይ ብዙ ጽሑፎች አሉ። ለምሳሌ፣ የሚከተሉትን መመልከት ይችላሉ .
የተፈጠሩት ቁልፎች እንደዚህ ይመስላሉ፦

ከዚህ በላይ ሚስጥራዊ ቁልፍ በGitLab ውስጥ እንደ ተለዋዋጭ ማከል ያስፈልግዎታል። ይህንን ለማድረግ ወደ ቅንብሮች > CI/CD > Environment Variables ይሂዱ። ሚስጥራዊ ቁልፉን ያስቀመጡበትን የፋይል ሙሉ ይዘቶች ያክሉ። ተለዋዋጭ SSH_PRIVATE_KEY ብለን እንጠራው።
* ይህ ፋይል፣ ከሕዝብ ቁልፍ ፋይል በተለየ መልኩ፣ ቅጥያ አይኖረውም

በጣም ጥሩ፣ አሁን የህዝብ ቁልፉን ወደ BitBucket ማከል አለብን። ይህንን ለማድረግ ማከማቻውን ይክፈቱ እና ወደ ቅንብሮች > የመዳረሻ ቁልፎች ይሂዱ።

እዚህ ላይ "አክል" የሚለውን ጠቅ እናደርጋለን እና የፋይሉን ይዘቶች ከህዝብ ቁልፍ ጋር (ፋይሉን ከ.pub ቅጥያ ጋር) እንለጥፋለን።
የሚቀጥለው እርምጃ በ gitlab-runner ውስጥ ያሉትን ቁልፎች መጠቀም ነው። እነዚህን ትዕዛዞች ይጠቀሙ፣ ነገር ግን ኮከቦችን በራስዎ ውሂብ ይተኩ።
image: timbru31/node-alpine-git:latest
stages:
- mirror
before_script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- git config --global user.email "*****@***"
- git config --global user.name "****"
- ssh -T git@bitbucket.org
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*****.git3. AppCenterን ማዋቀር
በAppCenter ላይ አዲስ መተግበሪያ ይፍጠሩ።

ቋንቋውን/መድረክን ይግለጹ

ቀጥሎ፣ ወደ አዲሱ የተፈጠረው መተግበሪያ የግንባታ ክፍል ይሂዱ። BitBucket ን እና በደረጃ 1 የተፈጠረውን ማከማቻ ይምረጡ።
በጣም ጥሩ፣ አሁን ግንባታውን ማዋቀር አለብን። ይህንን ለማድረግ የማርሽ አዶውን ያግኙ።

በመሠረቱ፣ ሁሉም ነገር በቀላሉ የሚታወቅ ነው። ፕሮጀክት እና ውቅር ይምረጡ። አስፈላጊ ከሆነ፣ ከግንባታው በኋላ ሙከራዎችን ያንቁ። በራስ-ሰር ይሰራሉ።
በመሠረቱ ያ ነው። ቀላል ይመስላል፣ ግን በተፈጥሮው ሁሉም ነገር በተቀላጠፈ ሁኔታ አይሄድም። ስለዚህ፣ በመንገድ ላይ ያጋጠሙኝን አንዳንድ ስህተቶች እገልጻለሁ፡
'ssh-keygen' እንደ ውስጣዊ ወይም ውጫዊ ትዕዛዝ አይታወቅም።
ይህ ደግሞ የሚከሰተው ወደ ssh-keygen.exe የሚወስደው መንገድ ወደ አካባቢ ተለዋዋጮች ስለማይታከል ነው።
ሁለት አማራጮች አሉ፡ C:\Program Files\Gitus\rbin ን ወደ Environment Variables ያክሉ (ይህ ማሽኑን እንደገና ከጀመሩ በኋላ ይተገበራል) ወይም ኮንሶሉን ከዚህ ማውጫ ያስጀምሩ።
AppCenter ከተሳሳተ የBitBucket መለያ ጋር ተገናኝቷል?
ይህንን ችግር ለመፍታት የBitBucket መለያዎን ከAppCenter ማገናኘት ያስፈልግዎታል። የተሳሳተውን የBitBucket መለያ ይግቡ እና ወደ የተጠቃሚ መገለጫዎ ይሂዱ።

ቀጥሎ፣ ወደ ቅንብሮች > የመዳረሻ አስተዳደር > OAuth ይሂዱ

የመለያዎን ግንኙነት ለማቋረጥ ሻር የሚለውን ጠቅ ያድርጉ።

ከዚህ በኋላ፣ በሚፈለገው የBitBucket መለያ መግባት ያስፈልግዎታል።
* እንደ የመጨረሻ አማራጭ፣ የአሳሽዎን መሸጎጫ ያጽዱ።
አሁን ወደ AppCenter ይሂዱ። ወደ ግንባታ ክፍል ይሂዱ እና የ BitBucket መለያውን ያላቅቁ የሚለውን ጠቅ ያድርጉ።

የድሮው መለያ አንዴ ከተቋረጠ፣ AppCenterን ከትክክለኛው መለያ ጋር እንደገና ያገናኙት።
'ቫል' እንደ ውስጣዊ ወይም ውጫዊ ትዕዛዝ እውቅና አይሰጥም
ከትእዛዝ ይልቅ እንጠቀማለን
- eval $(ssh-agent -s)ቡድን፡
- ssh-agentበአንዳንድ ሁኔታዎች፣ ወደ C:\Program Files\Gitusrbinssh-agent.exe የሚወስደውን ሙሉ መንገድ መግለጽ ወይም ይህንን መንገድ ሯጩ በሚሰራበት ማሽን ላይ ወዳለው የስርዓት ተለዋዋጮች ማከል ይኖርብዎታል።
AppCenter Build ጊዜው ያለፈበት የቢትቡኬት ማከማቻ ፕሮጀክት ለመገንባት እየሞከረ ነው።
በእኔ ሁኔታ ችግሩ የተፈጠረው ከብዙ መለያዎች ጋር ስለምሰራ ነው። መሸጎጫውን ማጽዳት ችግሩን ፈታው።
ምንጭ: hab.com
