AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ට්‍රෙම්, ආයුබෝවන්!

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:[email protected]/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 හරහා සම්බන්ධ කිරීම

පළමුව ඔබ SSH යතුරක් ජනනය කළ යුතුය. මේ ගැන බොහෝ ලිපි ලියා ඇත. උදාහරණයක් ලෙස, ඔබට දැකිය හැකිය මෙහි.
උත්පාදනය කරන ලද යතුරු මේ වගේ දෙයක් පෙනේ:
AppCenter සහ GitLab ඒකාබද්ධ කිරීම

තවදුරටත් රහස් යතුර GitLab මත විචල්‍යයක් ලෙස එකතු කළ යුතුය. මෙය සිදු කිරීම සඳහා, Settings > CI / CD > Enviroment Variables වෙත යන්න. ඔබ රහස් යතුර සුරකින ලද ගොනුවේ සියලුම අන්තර්ගතයන් අපි එකතු කරමු. අපි SSH_PRIVATE_KEY විචල්‍යය නම් කරමු.
* මෙම ගොනුව, පොදු යතුරු ගොනුව මෙන් නොව, දිගුවක් නොමැත
AppCenter සහ GitLab ඒකාබද්ධ කිරීම

නියමයි, ඊළඟ පියවර වන්නේ BitBucket වෙත පොදු යතුර එක් කිරීමයි. මෙය සිදු කිරීම සඳහා, ගබඩාව විවෘත කරන්න, සැකසීම් > ප්රවේශ යතුරු වෙත යන්න.

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

මෙහිදී අපි Add Key සාදා පොදු යතුර (.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 [email protected]

mirror:
  stage: mirror
  script:
    - git push --mirror https://****:****@bitbucket.org/*****/*****.git

3. AppCenter සකසන්න

අපි AppCenter හි නව යෙදුමක් සාදන්නෙමු.

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

භාෂාව/වේදිකාව සඳහන් කරන්න

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ඊළඟට, අලුතින් සාදන ලද යෙදුමේ ගොඩනැගීමේ කොටස වෙත යන්න. එහි BitBucket තෝරන්න සහ පියවර 1 හි සාදන ලද ගබඩාව.

නියමයි, දැන් ඔබ ගොඩනැගීම වින්‍යාසගත කළ යුතුයි. මෙය සිදු කිරීම සඳහා, ගියර් නිරූපකය සොයා ගන්න

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ප්‍රතිපත්තිමය වශයෙන්, එහි සෑම දෙයක්ම බුද්ධිමත්ව පැහැදිලිය. ව්යාපෘතියක් සහ වින්යාසය තෝරන්න. අවශ්ය නම්, ගොඩනැගීමෙන් පසු පරීක්ෂණ දියත් කිරීම සක්රිය කරන්න. ඔවුන් ස්වයංක්රීයව ආරම්භ වනු ඇත.

මූලික වශයෙන්, එපමණයි. එය පහසු බව පෙනේ, නමුත්, ඇත්ත වශයෙන්ම, සෑම දෙයක්ම සුමටව සිදු නොවනු ඇත. එබැවින්, වැඩ කිරීමේදී මා මුහුණ දුන් දෝෂ කිහිපයක් මම විස්තර කරමි:

'ssh-keygen' අභ්‍යන්තර හෝ බාහිර විධානයක් ලෙස හඳුනාගෙන නොමැත.

පරිසරය විචල්‍යයන් වෙත ssh-keygen.exe වෙත මාර්ගය එක් කර නොමැති නිසා සිදු වේ.
විකල්ප දෙකක් තිබේ: C:Program FilesGitusrbin Enviroment Variables වෙත එක් කරන්න (යන්ත්‍රය නැවත පණගැන්වීමෙන් පසුව අදාළ වේ), නැතහොත් මෙම නාමාවලියෙන් කොන්සෝලය ධාවනය කරන්න.

AppCenter වැරදි BitBucket ගිණුමට සම්බන්ධ වී තිබේද?

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

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ඊළඟට යන්න Settings > Access Management > OAuth

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ඔබගේ ගිණුම විසන්ධි කිරීමට Revoke ක්ලික් කරන්න.

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

ඊට පසු, ඔබ කැමති BitBucket ගිණුම යටතේ ලොග් විය යුතුය
* අවසාන විසඳුම ලෙස, ඔබගේ බ්‍රවුසරයේ හැඹිලිය ඉවත් කරන්න.

දැන් අපි AppCenter වෙත යමු. Build කොටස වෙත ගොස්, BitBucket ගිණුම විසන්ධි කරන්න ක්ලික් කරන්න

AppCenter සහ GitLab ඒකාබද්ධ කිරීම

පැරණි ගිණුම විසන්ධි වූ විට, අපි නැවත AppCenter සම්බන්ධ කරමු. දැන් කැමති ගිණුමට.

'eval' අභ්‍යන්තර හෝ බාහිර විධානයක් ලෙස හඳුනාගෙන නොමැත

විධානය වෙනුවට භාවිතා කරන්න

  - eval $(ssh-agent -s)

කණ්ඩායම:

  - ssh-agent

සමහර අවස්ථාවලදී, ඔබට C:\Program Files\Gitusrbinssh-agent.exe වෙත සම්පූර්ණ මාර්ගය සඳහන් කිරීමට සිදුවනු ඇත, නැතහොත් ධාවකය ධාවනය වන යන්ත්‍රයේ පද්ධති විචල්‍යයන් වෙත මෙම මාර්ගය එක් කිරීමට සිදුවේ.

AppCenter Build යල් පැන ගිය bitBucket ගබඩාවකින් ව්‍යාපෘතියක් සඳහා ගොඩනැගීමක් ක්‍රියාත්මක කිරීමට උත්සාහ කරයි

මගේ නඩුවේදී, මම ගිණුම් කිහිපයක් සමඟ වැඩ කිරීම නිසා ගැටලුව ඇති විය. හැඹිලිය හිස් කිරීමට තීරණය කළා.

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

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