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
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
Ustvarjeni ključi izgledajo nekako takole:
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
Odlično, nato morate dodati javni ključ v BitBucket. Če želite to narediti, odprite repozitorij in pojdite na Nastavitve > Ključi za dostop.
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.
Določite jezik/platformo
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
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.
Nato pojdite na Nastavitve > Upravljanje dostopa > OAuth
Kliknite Prekliči, da prekinete povezavo z računom.
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
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