ادغام AppCenter و GitLab

Tryam، سلام!

من می خواهم در مورد تجربه خود در راه اندازی GitLab و ادغام AppCenter از طریق BitBucket صحبت کنم.

نیاز به چنین ادغامی هنگام راه‌اندازی خودکار تست‌های رابط کاربری برای یک پروژه چند پلتفرمی در Xamarin به وجود آمد. آموزش مفصل زیر برش!

* اگر عموم علاقه مند باشند، مقاله جداگانه ای در مورد خودکارسازی تست UI در شرایط بین پلتفرمی تهیه خواهم کرد.

من فقط یکی از این مواد را حفر کردم یک مقاله. بنابراین، مقاله من ممکن است به کسی کمک کند.

کار: با توجه به اینکه تیم ما از GitLab به عنوان یک سیستم کنترل نسخه استفاده می کند، راه اندازی خودکار آزمایش های UI را در AppCenter تنظیم کنید.

مشکل مشخص شد که AppCenter مستقیماً با GitLab ادغام نمی شود. بای پس از طریق BitBucket به عنوان یکی از راه حل ها انتخاب شد.

Шаги

1. یک مخزن خالی در BitBucket ایجاد کنید

من نیازی به توضیح بیشتر این موضوع نمی بینم :)

2. راه اندازی GitLab

ما نیاز داریم که هنگام فشار دادن/ادغام به مخزن، تغییرات در BitBucket نیز آپلود شوند. برای انجام این کار، یک runner اضافه کنید (یا فایل 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 > 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

در مرحله بعد، به بخش Build برنامه جدید ایجاد شده بروید. در آنجا BitBucket و مخزن ایجاد شده در مرحله 1 را انتخاب می کنیم.

عالی است، اکنون باید بیلد را پیکربندی کنیم. برای انجام این کار، نماد چرخ دنده را پیدا کنید

ادغام AppCenter و GitLab

در اصل، همه چیز در آنجا شهودی است. یک پروژه و پیکربندی را انتخاب کنید. در صورت لزوم، راه اندازی تست ها را پس از ساخت فعال کنید. آنها به طور خودکار شروع خواهند شد.

اساساً همین است. ساده به نظر می رسد، اما، طبیعتا، همه چیز هموار پیش نخواهد رفت. بنابراین، من برخی از خطاهایی که در حین کار با آنها مواجه شدم را شرح می دهم:

'ssh-keygen' به عنوان یک فرمان داخلی یا خارجی شناخته نمی شود.

همچنین به این دلیل رخ می دهد که مسیر ssh-keygen.exe به متغیرهای محیط اضافه نشده است.
دو گزینه وجود دارد: C:Program FilesGitusrbin را به Environment Variables اضافه کنید (پس از راه اندازی مجدد دستگاه اعمال می شود)، یا کنسول را از این فهرست راه اندازی کنید.

AppCenter به حساب BitBucket اشتباهی متصل است؟

برای حل مشکل، باید حساب BitBucket خود را از AppCenter جدا کنید. ما به حساب BitBucket اشتباه وارد می شویم و به نمایه کاربر می رویم.

ادغام AppCenter و GitLab

سپس به Settings > Access Management > OAuth بروید

ادغام AppCenter و GitLab

برای لغو پیوند حساب خود روی Revoke کلیک کنید.

ادغام AppCenter و GitLab

پس از این، باید با حساب BitBucket مورد نیاز وارد شوید.
* به عنوان آخرین راه حل، کش مرورگر خود را نیز پاک کنید.

حالا به AppCenter می رویم. به بخش Build بروید، روی Disconnect BitBucket account کلیک کنید

ادغام AppCenter و GitLab

وقتی حساب قدیمی قطع شد، AppCenter را دوباره پیوند می دهیم. حالا به اکانت مورد نظر بروید.

'eval' به عنوان یک فرمان داخلی یا خارجی شناخته نمی شود

به جای دستور از آن استفاده می کنیم

  - eval $(ssh-agent -s)

تیم:

  - ssh-agent

در برخی موارد، باید مسیر کامل را برای C:Program FilesGitusrbinssh-agent.exe مشخص کنید یا این مسیر را به متغیرهای سیستم در دستگاهی که رانر در آن اجرا می شود اضافه کنید.

AppCenter Build در حال تلاش برای راه اندازی یک بیلد برای یک پروژه از یک مخزن قدیمی بیت باکت است.

در مورد من، مشکل به این دلیل ایجاد شد که من با چندین حساب کار می کردم. تصمیم گرفتم کش را پاک کنم.

منبع: www.habr.com

اضافه کردن نظر