تكامل AppCenter وGitLab

تريام، مرحبا!

أود أن أتحدث عن تجربتي في إعداد تكامل 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. لقد تم كتابة العديد من المقالات حول هذا الموضوع. على سبيل المثال، يمكنك أن تبحث هنا.
تبدو المفاتيح التي تم إنشاؤها كما يلي:
تكامل AppCenter وGitLab

إضافي المفتاح السري يجب إضافته كمتغير على GitLab. للقيام بذلك، انتقل إلى الإعدادات > CI/CD > متغيرات البيئة. أضف كافة محتويات الملف الذي قمت بحفظ المفتاح السري فيه. لنستدعي المتغير SSH_PRIVATE_KEY.
* هذا الملف، على عكس ملف المفتاح العام، لن يكون له الامتداد
تكامل AppCenter وGitLab

عظيم، بعد ذلك تحتاج إلى إضافة المفتاح العام إلى BitBucket. للقيام بذلك، افتح المستودع وانتقل إلى الإعدادات > مفاتيح الوصول.

تكامل AppCenter وGitLab

ننقر هنا على "إضافة مفتاح" ونقوم بإدراج محتويات الملف بالمفتاح العام (ملف ذو الامتداد .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 وGitLab

حدد اللغة/النظام الأساسي

تكامل AppCenter وGitLab

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

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

تكامل AppCenter وGitLab

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

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

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

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

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

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

تكامل AppCenter وGitLab

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

تكامل AppCenter وGitLab

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

تكامل AppCenter وGitLab

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

الآن دعنا نذهب إلى AppCenter. انتقل إلى قسم البناء، وانقر فوق قطع الاتصال بحساب BitBucket

تكامل AppCenter وGitLab

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

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

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

  - eval $(ssh-agent -s)

فريق:

  - ssh-agent

في بعض الحالات، سيتعين عليك إما تحديد المسار الكامل إلى C:Program FilesGitusrbinssh-agent.exe، أو إضافة هذا المسار إلى متغيرات النظام على الجهاز الذي يتم تشغيل المشغل فيه

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

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

المصدر: www.habr.com

إضافة تعليق