AppCenter və GitLab inteqrasiyası

Tryam, salam!

BitBucket vasitəsilə GitLab və AppCenter inteqrasiyasını qurmaq təcrübəmdən danışmaq istərdim.

Belə inteqrasiyaya ehtiyac Xamarin-də cross-platforma layihəsi üçün UI testlərinin avtomatik işə salınması zamanı yarandı. Kesimin altındakı ətraflı təlimat!

* İctimaiyyət maraqlı olarsa, çarpaz platforma şəraitində UI testinin avtomatlaşdırılması haqqında ayrıca məqalə hazırlayacağam.

Mən yalnız bir belə material qazdım Məqalə. Buna görə də mənim məqaləm kiməsə kömək edə bilər.

Tapşırıq: Komandamızın GitLab-dan versiyaya nəzarət sistemi kimi istifadə etdiyini nəzərə alaraq, AppCenter-də UI testlərinin avtomatik işə salınmasını qurun.

problem Məlum oldu ki, AppCenter birbaşa GitLab ilə inteqrasiya etmir. Həlllərdən biri kimi BitBucket vasitəsilə bypass seçilib.

Addımlar

1. BitBucket-də boş repozitoriya yaradın

Bunu daha ətraflı təsvir etməyə ehtiyac görmürəm :)

2. GitLab-ın qurulması

Bizə lazımdır ki, anbara itələyərkən/birləşərkən dəyişikliklər BitBucket-ə də yüklənsin. Bunu etmək üçün bir qaçış əlavə edin (və ya mövcud .gitlab-ci.yml faylını redaktə edin).

Əvvəlcə prior_scripts bölməsinə əmrlər əlavə edirik

 - git config --global user.email "user@email"
 - git config --global user.name "username"

Sonra istədiyiniz mərhələyə aşağıdakı əmri əlavə edin:

- git push --mirror https://username:[email protected]/username/projectname.git

Mənim vəziyyətimdə əldə etdiyim fayl budur:

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

Quraşdırmaya başlayırıq, dəyişikliklərimizin/fayllarımızın BitBucket-də olub olmadığını yoxlayın.
* Təcrübənin göstərdiyi kimi, SSH açarlarının qurulması isteğe bağlıdır. Ancaq hər halda, aşağıda SSH vasitəsilə əlaqə qurmaq üçün bir alqoritm təqdim edəcəyəm

SSH vasitəsilə qoşulma

Əvvəlcə bir SSH açarı yaratmalısınız. Bu barədə çoxlu məqalələr yazılıb. Məsələn, baxa bilərsiniz burada.
Yaradılan açarlar belə görünür:
AppCenter və GitLab inteqrasiyası

Əlavə Gizli açar GitLab-a dəyişən kimi əlavə edilməlidir. Bunu etmək üçün Parametrlər > CI/CD > Mühit Dəyişənləri bölməsinə keçin. Gizli açarı saxladığınız faylın BÜTÜN məzmununu əlavə edin. SSH_PRIVATE_KEY dəyişəninə zəng edək.
* bu fayl, açıq açar faylından fərqli olaraq, uzantıya malik olmayacaq
AppCenter və GitLab inteqrasiyası

Əla, bundan sonra açıq açarı BitBucket-ə əlavə etməlisiniz. Bunu etmək üçün deponu açın və Parametrlər > Giriş Açarlarına keçin.

AppCenter və GitLab inteqrasiyası

Burada "Açar əlavə et" düyməsini sıxırıq və açıq açarla (.pub uzantılı fayl) faylın məzmununu daxil edirik.

Növbəti addım gitlab-runner-da düymələrdən istifadə etməkdir. Bu əmrləri istifadə edin, lakin ulduzları təfərrüatlarınızla əvəz edin

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-in qurulması

Biz AppCenter-də yeni proqram yaradırıq.

AppCenter və GitLab inteqrasiyası

Dili/platformanı göstərin

AppCenter və GitLab inteqrasiyası

Sonra, yeni yaradılmış proqramın Build bölməsinə keçin. Orada BitBucket və 1-ci addımda yaradılmış deponu seçirik.

Əla, indi quruluşu konfiqurasiya etməliyik. Bunu etmək üçün dişli simgesini tapın

AppCenter və GitLab inteqrasiyası

Prinsipcə, orada hər şey intuitivdir. Layihə və konfiqurasiya seçin. Lazım gələrsə, qurduqdan sonra testlərin işə salınmasına icazə verin. Onlar avtomatik olaraq başlayacaq.

Prinsipcə, hamısı budur. Sadə səslənir, amma təbii ki, hər şey rəvan getməyəcək. Buna görə də işləyərkən rastlaşdığım bəzi səhvləri təsvir edəcəyəm:

'ssh-keygen' daxili və ya xarici əmr kimi tanınmır.

Bu, həmçinin ssh-keygen.exe yolunun mühit dəyişənlərinə əlavə edilməməsi səbəbindən baş verir.
İki seçim var: C:Program FilesGitusrbin-i Mühit Dəyişənlərinə əlavə edin (maşın yenidən işə salındıqdan sonra tətbiq olunacaq) və ya konsolu bu kataloqdan işə salın.

AppCenter səhv BitBucket hesabına qoşulub?

Problemi həll etmək üçün BitBucket hesabınızı AppCenter-dən ayırmalısınız. Yanlış BitBucket hesabına daxil oluruq və istifadəçi profilinə gedirik.

AppCenter və GitLab inteqrasiyası

Sonra Parametrlər > Giriş İdarəetmə > OAuth bölməsinə keçin

AppCenter və GitLab inteqrasiyası

Hesabınızın əlaqəsini kəsmək üçün Ləğv et klikləyin.

AppCenter və GitLab inteqrasiyası

Bundan sonra, tələb olunan BitBucket hesabı ilə daxil olmalısınız.
* Son çarə olaraq brauzerinizin önbelleğini də təmizləyin.

İndi AppCenter-ə keçək. Quraşdırma bölməsinə keçin, BitBucket hesabını ayırın düyməsini basın

AppCenter və GitLab inteqrasiyası

Köhnə hesabın əlaqəsi kəsildikdə, biz AppCenter-i yenidən əlaqələndiririk. İndi istədiyiniz hesaba.

'qiymətləndirmə' daxili və ya xarici əmr kimi tanınmır

Biz onu əmr əvəzinə istifadə edirik

  - eval $(ssh-agent -s)

Komanda:

  - ssh-agent

Bəzi hallarda ya C:Program FilesGitusrbinssh-agent.exe-ə tam yolu göstərməli, ya da bu yolu qaçışçının işlədiyi maşındakı sistem dəyişənlərinə əlavə etməli olacaqsınız.

AppCenter Build köhnə bitBucket repozitoriyasından layihə üçün quruluşu işə salmağa çalışır

Mənim vəziyyətimdə problem bir neçə hesabla işlədiyim üçün yarandı. Keşi təmizləməyə qərar verdim.

Mənbə: www.habr.com

Добавить комментарий