Integracija AppCenter in GitLab

Tryam, pozdravljen!

Rad bi spregovoril o svojih izkušnjah z nastavitvijo integracije GitLab in AppCenter prek BitBucketa.

Potreba po takšni integraciji se je pojavila pri nastavljanju samodejnega zagona testov uporabniškega vmesnika za projekt na več platformah na Xamarinu. Podroben tutorial pod rezom!

* Napisal bom ločen članek o avtomatizaciji testiranja uporabniškega vmesnika v pogojih med platformami, če bo javnost zainteresirana.

Izkopal sem samo en tak material статью. Zato bo moj članek morda komu pomagal.

Naloga: Nastavite samodejni zagon testov uporabniškega vmesnika na AppCenter, glede na to, da naša ekipa uporablja GitLab kot sistem za nadzor različic.

problem Izkazalo se je, da se AppCenter ne integrira neposredno z GitLabom. Kot eno od rešitev je bil izbran obvod preko BitBucketa.

Koraki

1. Ustvarite prazno skladišče na BitBucket

Ne vidim potrebe, da bi to podrobneje opisoval :)

2. Nastavitev GitLaba

Potrebujemo, da se ob potiskanju/združevanju v repozitorij spremembe naložijo tudi v BitBucket. Če želite to narediti, dodajte tekalnik (ali uredite obstoječo datoteko .gitlab-ci.yml).

Najprej dodamo ukaze v razdelek before_scripts

 - git config --global user.email "user@email"
 - git config --global user.name "username"

Nato dodajte naslednji ukaz na želeno stopnjo:

- git push --mirror https://username:[email protected]/username/projectname.git

V mojem primeru je to datoteka, ki sem jo dobil:

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

Zaženemo gradnjo, preverimo, ali so naše spremembe/datoteke na BitBucketu.
* kot je pokazala praksa, nastavitev ključev SSH ni obvezna. Toda za vsak slučaj bom spodaj navedel algoritem za nastavitev povezave prek SSH

Povezava preko SSH

Najprej morate ustvariti ključ SSH. O tem je bilo napisanih veliko člankov. Na primer, lahko pogledate tukaj.
Ustvarjeni ključi izgledajo nekako takole:
Integracija AppCenter in GitLab

Več Skrivni ključ je treba dodati kot spremenljivko v GitLab. Če želite to narediti, pojdite na Nastavitve > CI/CD > Spremenljivke okolja. Dodajte VSO vsebino datoteke, v katero ste shranili skrivni ključ. Pokličimo spremenljivko SSH_PRIVATE_KEY.
* ta datoteka, za razliko od datoteke javnega ključa, ne bo imela končnice
Integracija AppCenter in GitLab

Odlično, nato morate dodati javni ključ v BitBucket. Če želite to narediti, odprite repozitorij in pojdite na Nastavitve > Ključi za dostop.

Integracija AppCenter in GitLab

Tukaj kliknemo Dodaj ključ in vstavimo vsebino datoteke z javnim ključem (datoteka s končnico .pub).

Naslednji korak je uporaba ključev v gitlab-runnerju. Uporabite te ukaze, vendar zamenjajte zvezdice s svojimi podatki

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. Nastavitev AppCenter

Ustvarimo novo aplikacijo na AppCenter.

Integracija AppCenter in GitLab

Določite jezik/platformo

Integracija AppCenter in GitLab

Nato pojdite na razdelek Build novo ustvarjene aplikacije. Tam izberemo BitBucket in repozitorij, ustvarjen v 1. koraku.

Super, zdaj moramo konfigurirati gradnjo. Če želite to narediti, poiščite ikono zobnika

Integracija AppCenter in GitLab

Načeloma je tam vse intuitivno. Izberite projekt in konfiguracijo. Po potrebi omogočite zagon testov po gradnji. Zagnali se bodo samodejno.

V bistvu je to vse. Sliši se preprosto, a seveda ne bo šlo vse gladko. Zato bom opisal nekaj napak, na katere sem naletel med delom:

'ssh-keygen' ni prepoznan kot notranji ali zunanji ukaz.

Do tega pride tudi zato, ker pot do ssh-keygen.exe ni dodana spremenljivkam okolja.
Obstajata dve možnosti: dodajte C:Program FilesGitusrbin v okoljske spremenljivke (uporabljene bodo po ponovnem zagonu stroja) ali zaženite konzolo iz tega imenika.

AppCenter povezan z napačnim računom BitBucket?

Če želite rešiti težavo, morate prekiniti povezavo med računom BitBucket in AppCentrom. Prijavimo se v napačen BitBucket račun in gremo na uporabniški profil.

Integracija AppCenter in GitLab

Nato pojdite na Nastavitve > Upravljanje dostopa > OAuth

Integracija AppCenter in GitLab

Kliknite Prekliči, da prekinete povezavo z računom.

Integracija AppCenter in GitLab

Po tem se morate prijaviti z zahtevanim računom BitBucket.
* V skrajnem primeru počistite tudi predpomnilnik brskalnika.

Zdaj pa pojdimo v AppCenter. pojdite na razdelek Gradnja, kliknite Prekini povezavo z računom BitBucket

Integracija AppCenter in GitLab

Ko stari račun prekinemo povezavo, ponovno povežemo AppCenter. Sedaj na želeni račun.

'eval' ni prepoznan kot notranji ali zunanji ukaz

Uporabljamo ga namesto ukaza

  - eval $(ssh-agent -s)

ekipa:

  - ssh-agent

V nekaterih primerih boste morali določiti celotno pot do C:Program FilesGitusrbinssh-agent.exe ali to pot dodati sistemskim spremenljivkam na računalniku, kjer se izvaja izvajalec

AppCenter Build poskuša zagnati gradnjo za projekt iz zastarelega repozitorija bitBucket

V mojem primeru je težava nastala, ker sem delal z več računi. Odločil sem se, da počistim predpomnilnik.

Vir: www.habr.com

Dodaj komentar