Helló, üdvözlöm!
Szeretném megosztani a tapasztalataimat a GitLab és AppCenter integrációjának beállításáról a BitBucket segítségével.
Az integráció szükségessége az UI tesztek automatikus indításának beállítása során merült fel egy Xamarin alapú, cross-platform projekt esetében. Részletes útmutató a cikk végén!
* Ha érdekel a cross-platform UI tesztelés automatizálása, írok egy külön cikket erről.
Csak egy hasonló anyagot találtam eddig. . Ezért a cikkem segíthet valakinek.
Feladat: Az UI tesztek automatikus indításának beállítása AppCenterben, miközben a csapatunk GitLab-ot használ verziókezelő rendszerként.
Probléma arra jutottam, hogy az AppCenter nem integrálódik közvetlenül a GitLab-bal. Az egyik lehetséges megoldásként a BitBucket használatát választottuk.
Lépések
1. Hozzunk létre egy üres repót a BitBucket-en
Nem látom szükségét, hogy ezt részletesebben kifejtsem 🙂
2. Állítsuk be a GitLab-ot
Szükségünk van arra, hogy a push/merge során a változások a BitBucket-re is eljussanak. Ehhez hozzáadunk egy runner-t (vagy szerkesztjük a meglévő .gitlab-ci.yml fájlt).
Először a before_scripts szekcióba adjuk hozzá a parancsokat
- git config --global user.email "user@email"
- git config --global user.name "username"Ezt követően hozzáadjuk a következő parancsot a megfelelő stage-hez:
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitAz én esetemben az alábbi fájl jött létre
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.gitIndítsuk el a buildet, ellenőrizzük, hogy a változásaink/fájljaink megjelentek a BitBucket-en.
* Az eddigi tapasztalat szerint az SSH kulcsok beállítása nem kötelező. De, minden esetre, bemutatom az SSH kapcsolat beállításának lépéseit.
SSH kapcsolódás
Először generálni kell egy SSH kulcsot. Erről számos cikk született. Példa gyanánt nézd meg .
A generált kulcsok körülbelül így néznek ki:

Ezután a titkos kulcsot mint változót kell hozzáadnunk a GitLab-hoz. Ehhez: Beállítások > CI/CD > Környezeti változók. Hozzáadjuk a titkos kulcs fájljának TELJES tartalmát. Nevezd el a változót SSH_PRIVATE_KEY.
* ez a fájl, ellentétben a nyilvános kulcs fájljával, nem fog kiterjesztést kapni.

Szuper, ezután a nyilvános kulcsot a BitBucket-en is hozzá kell adni. Ehhez megnyitjuk a repót, átmegyünk a Beállítások > Hozzáférési kulcsok menüpontra.

Itt rákattintunk a Kulcs hozzáadása gombra, és beillesztjük a nyilvános kulcs fájljának tartalmát (fájl .pub kiterjesztéssel).
A következő lépés a kulcsok használata a gitlab-runnerben. Használja ezeket a parancsokat, de a csillagok helyett adja meg a saját adatait.
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 git@bitbucket.org
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*.git3. AppCenter beállítása
Új alkalmazást hozunk létre az AppCenter-ben.

Megadjuk a nyelvet/platformot.

Ezután lépjünk be a frissen létrehozott alkalmazás Build szekciójába. Válasszuk ki a BitBucket-t és a 1. lépés során létrehozott tárolót.
Kiváló, most be kell állítani a buildet. Ehhez keressük meg a fogaskerék ikont.

Alapvetően minden intuitív. Válassza ki a projektet és a konfigurációt. Ha szükséges, engedélyezze a tesztek futtatását a build után. Ezek automatikusan elindulnak.
Alapvetően ennyi. Nem tűnik bonyolultnak, de természetesen nem megy minden simán. Ezért néhány hibát írok le, amellyel találkoztam a munka során:
‘ssh-keygen’ nem ismert belső vagy külső parancs.
Ez abból adódik, hogy az ssh-keygen.exe elérési útja nincs hozzáadva a környezeti változókhoz.
Két megoldás van: adja hozzá a C:Program FilesGitusrbin-t a környezeti változókhoz (ez a gép újraindítása után lép életbe), vagy indítsa el a konzolt ebből a könyvtárból.
Az AppCenter nem a megfelelő BitBucket fiókhoz csatlakozott?
A probléma megoldásához le kell választani a BitBucket fiókot az AppCenter-ről. Lépjen be a hibás BitBucket fiókba, majd lépjen a felhasználói profilba.

Ezután lépjünk a Beállítások > Hozzáféréskezelés > OAuth menübe.

Kattintson a Visszavonás gombra a fiók lekapcsolásához.

Ezután be kell jelentkeznie a megfelelő BitBucket fiókba.
* Végső esetben tisztítsa meg a böngésző gyorsítótárát is.
Most lépjen be az AppCenter-be. Lépjen a Build szekcióra, és kattintson a BitBucket fiók lekapcsolására.

Miután a régi fiók le lett választva, csatlakoztassa újra az AppCenter-t. Most már a megfelelő fiókhoz.
‘eval’ nem ismert belső vagy külső parancs.
Használja a parancs helyett:
- eval $(ssh-agent -s)A parancsot:
- ssh-agentBizonyos esetekben teljes elérési utat kell megadnia a C:Program FilesGitusrbinssh-agent.exe-hez, vagy hozzá kell adnia ezt az utat a rendszer változóihoz azon a gépen, ahol a futtató működik.
Az AppCenter Build megpróbálja elindítani a buildet egy elavult bitBucket tárolóból.
Az én esetemben a probléma abból adódott, hogy több fiókkal dolgoztam. A gyorsítótár törlésével sikerült megoldanom.
Forrás: habr.com
