Përshëndetje!
Dëshiroj të flas për përvojën time në konfigurimin e integrimit të GitLab dhe AppCenter përmes BitBucket.
Nevoja për këtë integrim u shfaq gjatë konfigurimit të nisjes automatike të testeve UI për një projekt multi-platformë në Xamarin. Një tutorial i detajuar më poshtë!
* Për automatizimin e testimit UI në kushte multi-platformë do të shkruaj një artikull të veçantë, nëse publikohet interes.
Kam gjetur vetëm një material të tillë . Prandaj, artikulli im mund të ndihmojë dikë.
Detyra: Të konfiguroni nisjen automatike të testeve UI në AppCenter, pasi ekipi ynë përdor GitLab si sistem kontrolli versioni.
Problemi u zbulua që AppCenter nuk integrohet drejtpërdrejt me GitLab. Një nga zgjidhjet ishte zgjedhja e një rruge përmes BitBucket.
Hapat
1. Krijoni një depo të zbrazët në BitBucket
Nuk shoh nevojĂ« pĂ«r ta pĂ«rshkruar kĂ«tĂ« mĂ« shumĂ« đ
2. Konfiguroni GitLab
Na nevojitet që kur të bëhet push/mergj në depo, ndryshimet të ngarkohen gjithashtu në BitBucket. Për këtë, shtojmë runner (ose redaktojmë skedarin ekzistues .gitlab-ci.yml).
Fillimisht, shtojmë komandat në seksionin before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"Pastaj shtojmë komandën e ardhshme në skenën përkatëse:
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitNë rastin tim, dosja dukej kështu
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, kontrollojmë në BitBucket që ndryshimet/dosjet tona janë ngarkuar.
* siç tregoi praktika, konfigurimi i çelësave SSH nuk është i detyrueshëm. Megjithatë, për çdo rast, do të jap algoritmin e konfigurimit të lidhjes përmes SSH më poshtë
Lidhja përmes SSH
Së pari, duhet të gjeneroni një çelës SSH. Për këtë ka shumë artikuj të shkruar. Si shembull mund të shikoni .
ĂelĂ«sat e gjeneruar duken kĂ«shtu:

Më pas çelësi sekret duhet të shtohet si një variable në GitLab. Për këtë shkojmë në Settings > CI/CD > Enviroment Variables. Shtojmë Tà GJITHà përmbajtjen e skedës ku e ruajtët çelësin sekret. Do ta quajmë variable SSH_PRIVATE_KEY.
* kjo skedë, ndryshe nga skeda me çelësin e hapur, nuk do të ketë zgjerim

Shumë mirë, tani duhet të shtojmë çelësin e hapur në BitBucket. Për këtë hapim depozitën, kalojmë në Settings > Access Keys.

Këtu klikoni në Add Key dhe ngjitni përmbajtjen e skedarit me çelësin publik (skedari me zgjatjen .pub).
Hapin tjetër do të jetë përdorimi i çelësave në gitlab-runner. Përdorni këto komandat, 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 hyjmë në seksionin Build të aplikacionit të sapokrijuar. Zgjidhni aty BitBucket dhe repositorin e krijuar në fazën 1.
Shkëlqyeshëm, tani duhet të konfiguroni ndërtimin. Për këtë, gjeni ikonën e ingranazhit.

Në thelb, gjithçka është intuitive. 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ë gjithçka. Dëgjon e lehtë, por, natyrisht, gjithçka nuk do të shkojë pako. Prandaj do të përshkruaj disa gabime që kam hasur gjatë punës:
âssh-keygenâ nuk Ă«shtĂ« njohur si njĂ« komandĂ« e brendshme ose e jashtme.
Kjo ndodh sepse rruga për ssh-keygen.exe nuk është shtuar në variablat e mjedisit.
Ka dy mundësi: shtoni C:Program FilesGitusrbin në variablat e mjedisit (do të jetë në fuqi pas riaktivizimit të makinës), ose hapni konsolën nga kjo direktori.
AppCenter u lidh me një llogari të gabuar të BitBucket?
Për të zgjidhur problemin, duhet të lidhni llogarinë e BitBucket nga AppCenter. Hyni në llogarinë e gabuar të BitBucket, shkon në profilin e përdoruesit.

Pastaj kaloni në Cilësimet > Menaxhimi i Qasjes > OAuth

Shtypni Revok për të lidhur llogarinë.

Pas kësaj, duhet të hyni me llogarinë e duhur të BitBucket.
* Në rastin më të keq, pastaj gjithashtu pastrojeni cache-in e shfletuesit.
Tani kaloni në AppCenter. Kaloni në seksionin Build, shtypni Shkëput llogarinë e BitBucket.

Kur llogaria e vjetër të jetë shkëputur, lidhni AppCenter përsëri. Tani me llogarinë e duhur.
âevalâ nuk Ă«shtĂ« njohur 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, mund të duhet të specifikoni rrugën e plotë për C:Program FilesGitusrbinssh-agent.exe, ose ta shtoni këtë rrugë në variablat sistemorë në makinë, ku është aktivizuar runner.
AppCenter Build po përpiqet të nisë ndërtimin për projektin nga një repo të pasaktë të BitBucket.
Në rastin tim, problemi u paraqit për shkak se unë punoja me disa llogari. E zgjidhja ishte pastrimi i cache-it.
Burimi: habr.com
