AppCenter i GitLab integracija

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

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

Odlično, zatim morate dodati javni ključ u BitBucket. Da biste to učinili, otvorite spremište i idite na Postavke > Pristupni ključevi.

AppCenter i GitLab integracija

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.

AppCenter i GitLab integracija

Odredite jezik/platformu

AppCenter i GitLab integracija

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

AppCenter i GitLab integracija

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.

AppCenter i GitLab integracija

Zatim idite na Postavke > Upravljanje pristupom > OAuth

AppCenter i GitLab integracija

Kliknite na Opozovi da prekinete vezu sa svojim računom.

AppCenter i GitLab integracija

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

AppCenter i GitLab integracija

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

Dodajte komentar