AppCenter اور GitLab انضمام

تریم، ہیلو!

میں BitBucket کے ذریعے GitLab اور AppCenter کے انضمام کو ترتیب دینے میں اپنے تجربے کے بارے میں بات کرنا چاہوں گا۔

اس طرح کے انضمام کی ضرورت اس وقت پیدا ہوئی جب Xamarin پر ایک کراس پلیٹ فارم پروجیکٹ کے لیے UI ٹیسٹوں کا خودکار آغاز ترتیب دیا گیا۔ کٹ کے نیچے تفصیلی ٹیوٹوریل!

* اگر عوام کی دلچسپی ہے تو میں کراس پلیٹ فارم کے حالات میں UI ٹیسٹنگ کو خودکار کرنے کے بارے میں ایک الگ مضمون بناؤں گا۔

میں نے صرف ایک ایسا مواد نکالا ہے۔ مضمون. لہذا، میرا مضمون کسی کی مدد کر سکتا ہے.

ٹاسک: AppCenter پر UI ٹیسٹوں کا خودکار آغاز ترتیب دیں، اس لیے کہ ہماری ٹیم GitLab کو ورژن کنٹرول سسٹم کے طور پر استعمال کرتی ہے۔

مسئلہ یہ پتہ چلا کہ 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

ہم تعمیر شروع کرتے ہیں، چیک کریں کہ ہماری تبدیلیاں/فائلیں بٹ بکٹ پر ہیں۔
* جیسا کہ پریکٹس نے دکھایا ہے، SSH کیز کو ترتیب دینا اختیاری ہے۔ لیکن، صرف اس صورت میں، میں ذیل میں SSH کے ذریعے کنکشن قائم کرنے کے لیے الگورتھم فراہم کروں گا۔

SSH کے ذریعے جڑ رہا ہے۔

پہلے آپ کو ایک SSH کلید بنانے کی ضرورت ہے۔ اس بارے میں بہت سے مضامین لکھے گئے ہیں۔ مثال کے طور پر، آپ دیکھ سکتے ہیں یہاں.
تیار کردہ چابیاں کچھ اس طرح نظر آتی ہیں:
AppCenter اور GitLab انضمام

مزید خفیہ چابی GitLab پر متغیر کے طور پر شامل کرنے کی ضرورت ہے۔ ایسا کرنے کے لیے سیٹنگز > CI/CD > Environment 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 کو Environment Variables میں شامل کریں (مشین کو دوبارہ شروع کرنے کے بعد لاگو کیا جائے گا)، یا اس ڈائریکٹری سے کنسول لانچ کریں۔

AppCenter غلط BitBucket اکاؤنٹ سے منسلک ہے؟

مسئلہ حل کرنے کے لیے، آپ کو اپنے بٹ بکٹ اکاؤنٹ کو AppCenter سے ان لنک کرنے کی ضرورت ہے۔ ہم غلط BitBucket اکاؤنٹ میں لاگ ان ہوتے ہیں اور صارف پروفائل پر جاتے ہیں۔

AppCenter اور GitLab انضمام

اگلا، ترتیبات > رسائی کا انتظام > OAuth پر جائیں۔

AppCenter اور GitLab انضمام

اپنے اکاؤنٹ کا لنک ختم کرنے کے لیے کالعدم پر کلک کریں۔

AppCenter اور GitLab انضمام

اس کے بعد، آپ کو مطلوبہ BitBucket اکاؤنٹ کے ساتھ لاگ ان کرنے کی ضرورت ہے۔
* آخری حربے کے طور پر، اپنے براؤزر کیش کو بھی صاف کریں۔

اب آئیے AppCenter پر جائیں۔ بلڈ سیکشن پر جائیں، بٹ بکٹ اکاؤنٹ منقطع کریں پر کلک کریں۔

AppCenter اور GitLab انضمام

جب پرانے اکاؤنٹ کا لنک ختم ہو جاتا ہے، تو ہم AppCenter کو دوبارہ لنک کرتے ہیں۔ اب مطلوبہ اکاؤنٹ کی طرف۔

'eval' کو اندرونی یا بیرونی کمانڈ کے طور پر تسلیم نہیں کیا گیا ہے۔

ہم اسے کمانڈ کے بجائے استعمال کرتے ہیں۔

  - eval $(ssh-agent -s)

ٹیم:

  - ssh-agent

کچھ معاملات میں، آپ کو یا تو C:Program FilesGitusrbinssh-agent.exe کا پورا راستہ بتانا ہوگا، یا اس راستے کو مشین کے سسٹم کے متغیرات میں شامل کرنا ہوگا جہاں رنر چل رہا ہے۔

AppCenter Build ایک پرانے بٹ بکیٹ ریپوزٹری سے پروجیکٹ کے لیے ایک تعمیر شروع کرنے کی کوشش کر رہا ہے

میرے معاملے میں، مسئلہ پیدا ہوا کیونکہ میں متعدد اکاؤنٹس کے ساتھ کام کر رہا تھا۔ میں نے کیشے کو صاف کرنے کا فیصلہ کیا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں