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
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
Iċ-ċwievet iġġenerati jidhru xi ħaġa bħal din:
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
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.
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.
Speċifika lingwa/pjattaforma
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
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.
Imbagħad mur Settings> Access Management> OAuth
Ikklikkja Revoka biex tneħħi l-konnessjoni tal-kont tiegħek.
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
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