AppCenter i GitLab integracija

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 članak. Stoga bi moj članak mogao nekome pomoći.

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 ovdje.
Generirani ključevi izgledaju otprilike ovako:
AppCenter i GitLab integracija

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
AppCenter i GitLab integracija

Odlično, sljedeće morate dodati javni ključ u BitBucket. Da biste to učinili, otvorite spremište i idite na Postavke > Pristupne tipke.

AppCenter i GitLab integracija

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.

AppCenter i GitLab integracija

Navedite jezik/platformu

AppCenter i GitLab integracija

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

AppCenter i GitLab integracija

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.

AppCenter i GitLab integracija

Zatim idite na Postavke > Upravljanje pristupom > OAuth

AppCenter i GitLab integracija

Kliknite Opozovi da prekinete vezu svog računa.

AppCenter i GitLab integracija

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

AppCenter i GitLab integracija

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

Dodajte komentar