تريام، مرحبا!
أود أن أتحدث عن تجربتي في إعداد تكامل GitLab وAppCenter عبر BitBucket.
ظهرت الحاجة إلى مثل هذا التكامل عند إعداد التشغيل التلقائي لاختبارات واجهة المستخدم لمشروع مشترك بين الأنظمة الأساسية على Xamarin. برنامج تعليمي مفصل أدناه قطع!
* سأقوم بإعداد مقالة منفصلة حول أتمتة اختبار واجهة المستخدم في ظروف الأنظمة الأساسية إذا كان الجمهور مهتمًا بذلك.
لقد قمت بحفر واحدة فقط من هذه المواد
مهمة: قم بإعداد التشغيل التلقائي لاختبارات واجهة المستخدم على AppCenter، نظرًا لأن فريقنا يستخدم GitLab كنظام للتحكم في الإصدار.
مشكلة اتضح أن AppCenter لا يتكامل مباشرة مع GitLab. تم اختيار Bypass via 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. لقد تم كتابة العديد من المقالات حول هذا الموضوع. على سبيل المثال، يمكنك أن تبحث
تبدو المفاتيح التي تم إنشاؤها كما يلي:
إضافي المفتاح السري يجب إضافته كمتغير على 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 [email protected]
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*****.git
3. إعداد مركز التطبيقات
نقوم بإنشاء تطبيق جديد على AppCenter.
حدد اللغة/النظام الأساسي
بعد ذلك، انتقل إلى قسم البناء في التطبيق الذي تم إنشاؤه حديثًا. هناك نختار BitBucket والمستودع الذي تم إنشاؤه في الخطوة 1.
عظيم، الآن نحن بحاجة إلى تكوين البناء. للقيام بذلك، ابحث عن رمز الترس
من حيث المبدأ، كل شيء هناك بديهي. حدد المشروع والتكوين. إذا لزم الأمر، قم بتمكين إطلاق الاختبارات بعد الإنشاء. سيبدأون تلقائيًا.
في الأساس، هذا كل شيء. قد يبدو الأمر بسيطًا، لكن من الطبيعي أن كل شيء لن يسير بسلاسة. ولذلك سأصف بعض الأخطاء التي واجهتني أثناء العمل:
لم يتم التعرف على "ssh-keygen" كأمر داخلي أو خارجي.
ويحدث ذلك أيضًا بسبب عدم إضافة المسار إلى ssh-keygen.exe إلى متغيرات البيئة.
هناك خياران: إضافة C:Program FilesGitusrbin إلى متغيرات البيئة (سيتم تطبيقه بعد إعادة تشغيل الجهاز)، أو تشغيل وحدة التحكم من هذا الدليل.
هل يتصل AppCenter بحساب BitBucket الخاطئ؟
لحل المشكلة، تحتاج إلى إلغاء ربط حساب BitBucket الخاص بك مع AppCenter. نقوم بتسجيل الدخول إلى حساب BitBucket الخاطئ وننتقل إلى ملف تعريف المستخدم.
بعد ذلك، انتقل إلى الإعدادات > إدارة الوصول > OAuth
انقر فوق إبطال لإلغاء ربط حسابك.
بعد ذلك، تحتاج إلى تسجيل الدخول باستخدام حساب BitBucket المطلوب.
* كحل أخير، قم أيضًا بمسح ذاكرة التخزين المؤقت للمتصفح لديك.
الآن دعنا نذهب إلى AppCenter. انتقل إلى قسم البناء، وانقر فوق قطع الاتصال بحساب BitBucket
عندما يتم إلغاء ربط الحساب القديم، نقوم بربط AppCenter مرة أخرى. الآن إلى الحساب المطلوب.
لم يتم التعرف على "التقييم" كأمر داخلي أو خارجي
نستخدمها بدلاً من الأمر
- eval $(ssh-agent -s)
فريق:
- ssh-agent
في بعض الحالات، سيتعين عليك إما تحديد المسار الكامل إلى C:Program FilesGitusrbinssh-agent.exe، أو إضافة هذا المسار إلى متغيرات النظام على الجهاز الذي يتم تشغيل المشغل فيه
يحاول AppCenter Build إطلاق إنشاء لمشروع من مستودع bitBucket قديم
في حالتي، نشأت المشكلة لأنني كنت أعمل مع عدة حسابات. قررت مسح ذاكرة التخزين المؤقت.
المصدر: www.habr.com