تكامل AppCenter و GitLab

مرحبا ، مرحبا!


أريد أن أتحدث عن تجربتي في إعداد تكامل GitLab و AppCenter عبر BitBucket.


نشأت الحاجة لمثل هذا التكامل في سياق إعداد الإطلاق التلقائي لاختبارات واجهة المستخدم لمشروع عبر الأنظمة الأساسية على Xamarin. برنامج تعليمي مفصل تحت خفض!


* فيما يتعلق بأتمتة اختبار واجهة المستخدم في ظروف الأنظمة الأساسية ، سأقدم مقالة منفصلة إذا كان الجمهور مهتمًا.


حفرت هذه المواد مادة واحدة فقط. لذلك ، يمكن لمقالتي مساعدة شخص ما.


الهدف : إعداد التشغيل التلقائي لاختبارات واجهة المستخدم على AppCenter ، بينما يستخدم فريقنا GitLab كنظام للتحكم في الإصدار.


لقد تحولت المشكلة إلى أن AppCenter لا يتكامل مباشرة مع GitLab. كأحد الحلول ، تم اختيار تجاوز في BitBucket.


خطوات


1. إنشاء مستودع BitBucket فارغ


لا أرى الحاجة إلى وصفها بمزيد من التفصيل :)


2. تكوين GitLab


نحن بحاجة إلى ذلك عندما يتم ضغط / دمج التغييرات في المستودع على BitBucket أيضًا. للقيام بذلك ، قم بإضافة العداء (أو قم بتحرير ملف .itlab-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

تحتاج أولاً إلى إنشاء مفتاح SSH. لقد كتب الكثير من المقالات حول هذا الموضوع. على سبيل المثال يمكنك أن تبحث هنا .
المفاتيح التي تم إنشاؤها تبدو مثل هذا:


بعد ذلك ، يجب إضافة المفتاح السري كمتغير في GitLab. للقيام بذلك ، انتقل إلى الإعدادات> CI / CD> متغيرات البيئة. أضف جميع محتويات الملف الذي قمت بحفظ المفتاح الخاص فيه. دعونا اسم المتغير 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/*****/*****.git 

3. تكوين AppCenter


نقوم بإنشاء تطبيق جديد على AppCenter.



حدد اللغة / المنصة



بعد ذلك ، انتقل إلى قسم إنشاء التطبيق الذي تم إنشاؤه حديثًا. نختار BitBucket والمستودع الذي تم إنشاؤه في الخطوة 1 هناك.


حسنا ، الآن تحتاج إلى تكوين البناء. للقيام بذلك ، ابحث عن رمز الترس



من حيث المبدأ ، كل شيء بديهي هناك. نختار المشروع والتكوين. إذا لزم الأمر ، قم بتمكين بدء الاختبارات بعد الإنشاء. سوف تبدأ تلقائيا.


من حيث المبدأ ، هذا كل شيء. يبدو الأمر سهلاً ، لكن من الطبيعي أن كل شيء لن يتم بسلاسة. لذلك ، سوف أصف بعض الأخطاء التي واجهتها أثناء العمل:


لم يتم التعرف على 'ssh-keygen' كأمر داخلي أو خارجي.

ينشأ لأنه لا تتم إضافة المسار إلى ssh-keygen.exe إلى متغيرات البيئة.
هناك خياران: إضافة C: \ Program Files \ Git \ usr \ bin إلى متغيرات Enviroment (سيتم تطبيقها بعد إعادة تشغيل الجهاز) ، أو ابدأ تشغيل وحدة التحكم من هذا الدليل.


AppCenter متصل بحساب BitBucket الخاطئ؟

لحل المشكلة ، تحتاج إلى إلغاء ربط حساب BitBucket من AppCenter. نذهب إلى حساب BitBucket الخاطئ ، انتقل إلى ملف تعريف المستخدم.



بعد ذلك ، انتقل إلى الإعدادات> إدارة الوصول> OAuth



انقر فوق "إلغاء" لفك الحساب.



بعد ذلك ، تحتاج إلى تسجيل الدخول تحت حساب BitBucket الضروري
* في الحالات القصوى ، قم أيضًا بمسح ذاكرة التخزين المؤقت للمتصفح


اذهب الآن إلى AppCenter. انتقل إلى قسم Build (إنشاء) ، انقر فوق Disconnect BitBetet account



عند إلغاء ربط الحساب القديم ، نربط AppCenter مرة أخرى. الآن إلى الحساب المطلوب.


لم يتم التعرف على "eval" كأمر داخلي أو خارجي

استخدم بدلاً من الأمر


  - eval $(ssh-agent -s) 

القيادة:


  - ssh-agent 

في بعض الحالات ، سيكون عليك إما تحديد المسار الكامل إلى C: \ Program Files \ Git \ usr \ bin \ ssh-agent.exe ، أو إضافة هذا المسار إلى متغيرات النظام على الجهاز حيث يتم تشغيل runner


يحاول تطبيق AppCenter Build إنشاء مشروع من مستودع bitBucket غير ذي صلة

في حالتي ، نشأت المشكلة لأنني عملت مع عدة حسابات. قررت لمسح ذاكرة التخزين المؤقت.

Source: https://habr.com/ru/post/ar444136/


All Articles