Tryam, zdravo!
Želio bih govoriti o svom iskustvu u postavljanju GitLab i AppCenter integracije putem BitBucket-a.
Potreba za takvom integracijom pojavila se prilikom postavljanja automatskog pokretanja UI testova za cross-platform projekat na Xamarin. Detaljan tutorijal ispod reza!
* Napraviću poseban članak o automatizaciji UI testiranja u cross-platformskim uvjetima ako je javnost zainteresirana.
Iskopao sam samo jedan takav materijal
Cilj: Postavite automatsko pokretanje UI testova na AppCenter, s obzirom da naš tim koristi GitLab kao sistem kontrole verzija.
problem Ispostavilo se da se AppCenter ne integriše direktno sa GitLabom. Zaobilaženje putem BitBucketa odabrano je kao jedno od rješenja.
Koraci
1. Kreirajte prazno spremište na BitBucket
Ne vidim potrebu da ovo detaljnije opisujem :)
2. Postavljanje GitLaba
Potrebno nam je da se prilikom guranja/spajanja u spremište promjene također učitavaju u BitBucket. Da biste to učinili, dodajte runner (ili uredite postojeći .gitlab-ci.yml fajl).
Prvo dodajemo komande u sekciju 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 fajl koji 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 build, provjeravamo da li su naše promjene/fajlovi na BitBucket-u.
* kao što je praksa pokazala, postavljanje SSH ključeva nije obavezno. Ali, za svaki slučaj, u nastavku ću dati algoritam za postavljanje veze preko SSH-a
Veza preko SSH
Prvo morate generirati SSH ključ. O tome je napisano mnogo članaka. 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 Settings > CI/CD > Environment Variables. Dodajte SAV sadržaj datoteke u koju ste sačuvali tajni ključ. Pozovimo varijablu SSH_PRIVATE_KEY.
* ova datoteka, za razliku od datoteke javnog ključa, neće imati ekstenziju
Odlično, zatim morate dodati javni ključ u BitBucket. Da biste to učinili, otvorite spremište i idite na Postavke > Pristupni ključevi.
Ovdje kliknemo Dodaj ključ i ubacimo sadržaj datoteke sa javnim ključem (datoteka sa ekstenzijom .pub).
Sljedeći korak je korištenje ključeva u gitlab-runneru. Koristite ove komande, ali zvjezdice zamijenite svojim detaljima
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. Podešavanje AppCenter
Kreiramo novu aplikaciju na AppCenter.
Odredite jezik/platformu
Zatim idite na odjeljak Build novokreirane aplikacije. Tamo biramo BitBucket i spremište kreirano u koraku 1.
Odlično, sada moramo konfigurirati build. 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. Pokrenuće se automatski.
U suštini, 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 tokom rada:
'ssh-keygen' se ne prepoznaje kao interna ili eksterna komanda.
Takođe se dešava zato što se putanja do ssh-keygen.exe ne dodaje varijablama okruženja.
Postoje dvije opcije: dodajte C:Program FilesGitusrbin u varijable okruženja (primijenit će se nakon ponovnog pokretanja stroja) ili pokrenite konzolu iz ovog direktorija.
AppCenter povezan na pogrešan BitBucket nalog?
Da biste riješili problem, morate prekinuti vezu vašeg BitBucket naloga sa AppCenter-om. Prijavljujemo se na pogrešan BitBucket nalog i idemo na korisnički profil.
Zatim idite na Postavke > Upravljanje pristupom > OAuth
Kliknite na Opozovi da prekinete vezu sa svojim računom.
Nakon toga, potrebno je da se prijavite sa potrebnim BitBucket nalogom.
* Kao posljednje sredstvo, također obrišite keš pretraživača.
Sada idemo na AppCenter. idite na odjeljak Build, kliknite na Prekini vezu s BitBucket računom
Kada se stari nalog prekine, ponovo povezujemo AppCenter. Sada na željeni račun.
'eval' se ne prepoznaje kao interna ili eksterna naredba
Koristimo ga umjesto naredbe
- eval $(ssh-agent -s)
Tim:
- ssh-agent
U nekim slučajevima, moraćete ili da navedete punu putanju do C:Program FilesGitusrbinssh-agent.exe, ili da dodate ovu putanju sistemskim varijablama na mašini na kojoj je pokretač pokrenut
AppCenter Build pokušava pokrenuti build za projekat iz zastarjelog bitBucket spremišta
U mom slučaju, problem je nastao jer sam radio sa nekoliko naloga. Odlučio sam da obrišem keš memoriju.
izvor: www.habr.com