AppCenter u Integrazzjoni GitLab

Trem, hello!

Irrid ngħidlek dwar l-esperjenza tiegħi tat-twaqqif tal-integrazzjoni ta 'GitLab u AppCenter permezz ta' BitBucket.

Il-ħtieġa għal integrazzjoni bħal din qamet waqt is-setup ta 'tnedija awtomatika ta' testijiet UI għal proġett ta 'cross-platform fuq Xamarin. Tutorja dettaljata taħt il-qatgħa!

* Se nikteb artiklu separat dwar l-awtomatizzazzjoni tal-ittestjar tal-UI f'kundizzjonijiet ta 'cross-platform jekk il-pubbliku jkun interessat.

Ħaffert materjal simili wieħed biss oġġett. Għalhekk, l-artiklu tiegħi jista 'jgħin lil xi ħadd.

Kompitu: Issettja t-testijiet tal-UI biex jaħdmu awtomatikament fuq AppCenter filwaqt li t-tim tagħna juża GitLab bħala sistema ta’ kontroll tal-verżjoni.

problema irriżulta li AppCenter ma jintegrax direttament ma' GitLab. Bħala waħda mis-soluzzjonijiet, intgħażlet bypass permezz ta 'BitBucket.

Passi

1. Oħloq repożitorju vojt fuq BitBucket

Ma narax bżonn niddeskrivih f'aktar dettall 🙂

2. Twaqqaf GitLab

Irridu nimbuttaw/għaqdu bidliet fir-repożitorju biex jittellgħu fuq BitBucket ukoll. Biex tagħmel dan, żid runner (jew editja fajl .gitlab-ci.yml eżistenti).

L-ewwel, żid kmandi mat-taqsima before_scripts

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

Imbagħad żid il-kmand li ġej fl-istadju mixtieq:

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

Fil-każ tiegħi, dan huwa l-fajl

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

Aħna nmexxu l-bini, iċċekkja li l-bidliet/fajls tagħna huma fuq BitBucket.
* kif wriet il-prattika, it-twaqqif ta 'ċwievet SSH huwa fakultattiv. Iżda, fil-każ, se nagħti l-algoritmu tas-setup tal-konnessjoni permezz ta 'SSH hawn taħt

Konnessjoni permezz SSH

L-ewwel trid tiġġenera ċavetta SSH. Ħafna artikli nkitbu dwar dan. Per eżempju, tista 'tara hawn.
Iċ-ċwievet iġġenerati jidhru xi ħaġa bħal din:
AppCenter u Integrazzjoni GitLab

Aktar Iċ-ċavetta sigrieta jeħtieġ li jiġi miżjud bħala varjabbli fuq GitLab. Biex tagħmel dan, mur Settings > CI / CD > Varjabbli tal-Ambjent. Aħna nżidu l-kontenut KOLLHA tal-fajl li fih issejvjajt iċ-ċavetta sigrieta. Ejja nsemmu l-varjabbli SSH_PRIVATE_KEY.
* dan il-fajl, b'differenza mill-fajl taċ-ċavetta pubblika, mhux se jkollu estensjoni
AppCenter u Integrazzjoni GitLab

Kbir, il-pass li jmiss huwa li żżid iċ-ċavetta pubblika ma 'BitBucket. Biex tagħmel dan, iftaħ ir-repożitorju, mur Settings > Access Keys.

AppCenter u Integrazzjoni GitLab

Hawnhekk nagħmlu Żid Ċavetta u paste l-kontenut tal-fajl maċ-ċavetta pubblika (fajl bl-estensjoni .pub).

Il-pass li jmiss huwa li tuża ċ-ċwievet f'gitlab-runner. Uża dawn il-kmandi, iżda ibdel l-asterisks bid-dejta tiegħek stess

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. Twaqqaf AppCenter

Noħolqu applikazzjoni ġdida fuq AppCenter.

AppCenter u Integrazzjoni GitLab

Speċifika lingwa/pjattaforma

AppCenter u Integrazzjoni GitLab

Sussegwentement, mur fit-taqsima Ibni tal-applikazzjoni maħluqa ġdida. Agħżel BitBucket hemmhekk u r-repożitorju maħluqa fil-pass 1.

Kbir, issa għandek bżonn tikkonfigura l-bini. Biex tagħmel dan, sib l-ikona tal-irkaptu

AppCenter u Integrazzjoni GitLab

Fil-prinċipju, kollox huwa intuwittivament ċar hemmhekk. Agħżel proġett u konfigurazzjoni. Jekk meħtieġ, ppermetti t-tnedija tat-testijiet wara l-bini. Se jibdew awtomatikament.

Bażikament, dak kollu. Jidher faċli, iżda, ovvjament, kollox mhux se jmur tajjeb. Għalhekk, ser niddeskrivi xi wħud mill-iżbalji li ltqajt magħhom waqt ix-xogħol:

'ssh-keygen' mhix rikonoxxuta bħala kmand intern jew estern.

Iseħħ minħabba li l-mogħdija għal ssh-keygen.exe mhix miżjuda mal-varjabbli ambjentali.
Hemm żewġ għażliet: żid C:Program FilesGitusrbin mal-Enviroment Variables (se tapplika wara li terġa' tibda l-magna), jew ħaddem il-console minn dan id-direttorju.

AppCenter konness mal-kont BitBucket ħażin?

Biex issolvi l-problema, trid tneħħi l-konnessjoni tal-kont BitBucket tiegħek minn AppCenter. Immorru fil-kont BitBucket ħażin, mur fil-profil tal-utent.

AppCenter u Integrazzjoni GitLab

Imbagħad mur Settings> Access Management> OAuth

AppCenter u Integrazzjoni GitLab

Ikklikkja Revoka biex tneħħi l-konnessjoni tal-kont tiegħek.

AppCenter u Integrazzjoni GitLab

Wara dan, għandek bżonn tidħol taħt il-kont BitBucket mixtieq
* Bħala l-aħħar għażla, neħħi l-cache tal-browser tiegħek.

Issa ejja mmorru AppCenter. mur fit-taqsima Ibni, ikklikkja Skonnettja l-kont BitBucket

AppCenter u Integrazzjoni GitLab

Meta l-kont il-qadim ma jkunx konness, aħna nerġgħu torbot l-AppCenter. Issa għall-kont mixtieq.

'eval' mhix rikonoxxuta bħala kmand intern jew estern

Uża minflok kmand

  - eval $(ssh-agent -s)

Tim:

  - ssh-agent

F'xi każijiet, ikollok jew tispeċifika l-passaġġ sħiħ għal C:\Program Files\Gitusrbinssh-agent.exe, jew iżżid din il-mogħdija mal-varjabbli tas-sistema fuq il-magna fejn qed jaħdem ir-runner.

AppCenter Build qed jipprova jmexxi build għal proġett minn repożitorju skadut tal-bitBucket

Fil-każ tiegħi, il-problema qamet minħabba l-fatt li ħdimt ma 'diversi kontijiet. Iddeċieda li jneħħi l-cache.

Sors: www.habr.com

Żid kumment