Tryam, zdravo!
Želio bih govoriti o svom iskustvu u postavljanju integracije GitLaba i AppCenter putem BitBucketa.
Potreba za takvom integracijom pojavila se prilikom postavljanja automatskog pokretanja UI testova za višeplatformski projekt na Xamarinu. Detaljan tutorijal ispod rezanja!
* Napravit ću poseban članak o automatizaciji testiranja korisničkog sučelja u uvjetima više platformi ako javnost bude zainteresirana.
Iskopao sam samo jedan takav materijal
Zadatak: Postavite automatsko pokretanje UI testova na AppCentru, s obzirom da naš tim koristi GitLab kao sustav za kontrolu verzija.
problem Ispostavilo se da se AppCenter ne integrira izravno s GitLabom. Kao jedno od rješenja odabran je premosnik putem BitBucketa.
Шаги
1. Napravite prazno spremište na BitBucketu
Ne vidim potrebu da ovo detaljnije opisujem :)
2. Postavljanje GitLaba
Trebamo da se prilikom guranja/spajanja u repozitorij promjene također uploaduju na BitBucket. Da biste to učinili, dodajte runner (ili uredite postojeću datoteku .gitlab-ci.yml).
Prvo dodajemo naredbe u odjeljak before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"
Zatim dodajte sljedeću naredbu u željenu fazu:
- git push --mirror https://username:[email protected]/username/projectname.git
U mom slučaju, ovo je datoteka koju sam dobio:
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
Pokrećemo izgradnju, provjeravamo jesu li naše promjene/datoteke na BitBucketu.
* kao što je praksa pokazala, postavljanje SSH ključeva nije obavezno. No, za svaki slučaj, u nastavku ću dati algoritam za postavljanje veze putem SSH-a
Povezivanje preko SSH
Prvo morate generirati SSH ključ. O tome su napisani mnogi članci. Na primjer, možete pogledati
Generirani ključevi izgledaju otprilike ovako:
Dalje Tajni ključ treba dodati kao varijablu u GitLab. Da biste to učinili, idite na Postavke > CI/CD > Varijable okruženja. Dodajte SAV sadržaj datoteke u koju ste spremili tajni ključ. Nazovimo varijablu SSH_PRIVATE_KEY.
* ova datoteka, za razliku od datoteke javnog ključa, neće imati nastavak
Odlično, sljedeće morate dodati javni ključ u BitBucket. Da biste to učinili, otvorite spremište i idite na Postavke > Pristupne tipke.
Ovdje kliknemo Dodaj ključ i ubacimo sadržaj datoteke s javnim ključem (datoteka s nastavkom .pub).
Sljedeći korak je korištenje ključeva u gitlab-runner-u. Koristite ove naredbe, ali zamijenite zvjezdice svojim podacima
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. Postavljanje AppCentra
Izrađujemo novu aplikaciju na AppCentru.
Navedite jezik/platformu
Zatim idite na odjeljak Build novostvorene aplikacije. Tamo odabiremo BitBucket i spremište stvoreno u koraku 1.
Super, sada moramo konfigurirati izgradnju. Da biste to učinili, pronađite ikonu zupčanika
U principu, tamo je sve intuitivno. Odaberite projekt i konfiguraciju. Ako je potrebno, omogućite pokretanje testova nakon izgradnje. Pokrenut će se automatski.
Uglavnom, to je sve. Zvuči jednostavno, ali, naravno, neće sve ići glatko. Stoga ću opisati neke greške na koje sam naišao tijekom rada:
'ssh-keygen' se ne prepoznaje kao unutarnja ili vanjska naredba.
Također se događa jer put do ssh-keygen.exe nije dodan varijablama okruženja.
Postoje dvije mogućnosti: dodajte C:Program FilesGitusrbin u varijable okruženja (primijenit će se nakon ponovnog pokretanja stroja) ili pokrenite konzolu iz ovog direktorija.
AppCenter povezan s pogrešnim BitBucket računom?
Kako biste riješili problem, morate prekinuti vezu između svog BitBucket računa i AppCentra. Prijavljujemo se na krivi BitBucket račun i idemo na korisnički profil.
Zatim idite na Postavke > Upravljanje pristupom > OAuth
Kliknite Opozovi da prekinete vezu svog računa.
Nakon toga, morate se prijaviti sa potrebnim BitBucket računom.
* U krajnjem slučaju, izbrišite i predmemoriju preglednika.
Sada idemo u AppCenter. idite na odjeljak Build, kliknite Disconnect BitBucket account
Kada se veza sa starim računom prekine, ponovno povezujemo AppCenter. Sada na željeni račun.
'eval' se ne prepoznaje kao unutarnja ili vanjska naredba
Koristimo ga umjesto naredbe
- eval $(ssh-agent -s)
Tim:
- ssh-agent
U nekim ćete slučajevima morati navesti punu stazu do C:Program FilesGitusrbinssh-agent.exe ili dodati ovu stazu sistemskim varijablama na računalu na kojem se izvodi runner
AppCenter Build pokušava pokrenuti izgradnju za projekt iz zastarjelog bitBucket repozitorija
U mom slučaju problem je nastao jer sam radio s više računa. Odlučio sam očistiti predmemoriju.
Izvor: www.habr.com