Përshëndetje, si jeni!
Dua të ndaj përvojën time në konfigurimin e integrimit të GitLab me AppCenter përmes BitBucket.
Nevoja për këtë integrim u shfaq gjatë konfigurimit të fillimit automatik të testeve UI për një projekt multidimensional në Xamarin. Një udhëzues i detajuar më poshtë!
* Për automatizimin e testeve UI në kushte multidimensionale do të bëj një artikull të veçantë, nëse publiku shpreh interes.
Kam gjetur vetëm një material të ngjashëm. . Prandaj, artikulli im mund ta ndihmojë ndokënd.
Detyra: Konfiguroni nisjen automatike të testeve UI në AppCenter, ndërsa ekipi ynë përdor GitLab si sistemin e kontrollit të versioneve.
Problemi u zbulua se AppCenter nuk integrohet drejtpërdrejt me GitLab. Një nga zgjidhjet e propozuara ishte kalimi përmes BitBucket.
Hapat
1. Krijoni një depo të zbrazët në BitBucket.
Nuk shoh nevojĂ« ta pĂ«rshkruaj kĂ«tĂ« mĂ« shumĂ« đ
2. Konfiguroni GitLab.
Na nevojitet që me çdo push/merge në depo ndryshimet të nguliten gjithashtu në BitBucket. Për këtë, do të shtojmë runner (ose do të rregullojmë skedarin ekzistues .gitlab-ci.yml).
Fillimisht, shtoni komandat në seksionin before_scripts.
- git config --global user.email "user@email"
- git config --global user.name "username"Pastaj shtoni komandën e mëposhtme në fazën e duhur:
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitNĂ« rastin tim, ky ishte skedari:
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.gitNisim ndërtimin dhe kontrollojmë nëse ndryshimet/fajllat tanë janë vendosur në BitBucket.
* siç tregoi praktika, konfigurimi i çelësave SSH nuk është i detyrueshëm. Megjithatë, për siguri, do të jap algoritmin e konfigurimit të lidhjes përmes SSH më poshtë.
Lidhja përmes SSH
Së pari, duhet të generej një çelës SSH. Për këtë janë shkruar shumë artikuj. Si shembull, mund të shihni... .
ĂelĂ«sat e gjeneruar duken mĂ« pak kĂ«shtu:

Tjetër çelësi sekret duhet ta shtoni si një variabël në GitLab. Për këtë, shkojmë në Settings > CI/CD > Enviroment Variables. Shtoni të GJITHà përmbajtjen e skedarit ku e ruajtët çelësin sekret. Ta quajmë variablën SSH_PRIVATE_KEY.
* ky skedar, përkundrazi me skedarin me çelësin publik, nuk do të ketë prapashtesë.

Shumë mirë, pastaj duhet të shtoni çelësin publik në BitBucket. Për këtë, hapni depon, kaloni në Settings > Access Keys.

Këtu klikoni Add Key dhe ngjisni përmbajtjen e skedarit me çelësin publik (skedari me prapashtesën .pub).
Hapa tjetër, do të përdorim çelqet në gitlab-runner. Përdorni këto komanda, por vendosni të dhënat tuaja në vend të yjeve.
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. Konfigurimi i AppCenter
Krijojmë një aplikacion të ri në AppCenter.

Specifikoni gjuhën/platformën

Më pas, shkojmë në seksionin Build të aplikacionit të sapokrijuar. Zgjidhni atje BitBucket dhe repozitorin që u krijua në hapin 1.
Super, tani duhet të konfigurojmë ndërtimin. Për këtë, gjejmë ikonën e ingranazhit.

Në thelb, gjithçka është intuitivisht e kuptueshme. Zgjidhni projektin dhe konfigurimin. Nëse është e nevojshme, aktivizoni ekzekutimin e testeve pas ndërtimit. Ato do të ekzekutohen automatikisht.
Në thelb, kjo është e gjitha. Duket e thjeshtë, por, natyrisht, gjithçka nuk do të shkojë pa probleme. Prandaj do të përshkruaj disa gabime me të cilat kam përballur gjatë punës:
âssh-keygenâ nuk njihet si njĂ« komandĂ« e brendshme ose e jashtme.
Kjo ndodh sepse rruga për ssh-keygen.exe nuk është e shtuar në variablat e mjedisit.
Ka dy mundësi: shtoni C:Program FilesGitusrbin në Variablat e Mjedisit (do të zbatohet pas ri-ngarkimit të makinës), ose ekzekutoni konsolën nga kjo direktori.
AppCenter u lidh me llogarinë e gabuar të BitBucket?
Për të zgjidhur problemin, duhen shkëputur llogaria e BitBucket nga AppCenter. Hyni në llogarinë e gabuar të BitBucket, shkoni te profili i përdoruesit.

Më pas kaloni në Settings > Access Management > OAuth

Klikoni Revoke për të shkëputur llogarinë.

Pas kësaj, duhet të identifikoheni me llogarinë e duhur të BitBucket.
* Në rastin më të keq, gjithashtu mund ta pastroni ndonjëherë cache-n e shfletuesit tuaj.
Tani kaloni në AppCenter, shkoni në seksionin Build, klikoni Disconnect BitBucket account.

Kur llogaria e vjetër të jetë e shkëputur, lidhni sërish AppCenter. Tani me llogarinë e duhur.
âevalâ nuk njihet si njĂ« komandĂ« e brendshme ose e jashtme.
Përdorni në vend të komandës
- eval $(ssh-agent -s)Komandën:
- ssh-agentNë disa raste, do t'ju duhet të specifikoni rrugën e plotë për C:Program FilesGitusrbinssh-agent.exe ose të shtoni këtë rrugë në variablat sistemikë në makinën ku ekzekutohet runner.
AppCenter Build përpiqet të nisë ndërtimin për projektin nga një repozitor i bitBucket që nuk është aktual.
Në rastin tim, problemi ndodhi për shkak se punoja me disa llogari. U zgjidh duke pastruar cache-in.
Burimi: habr.com
