Tryam, përshëndetje!
Do të doja të flisja për përvojën time në konfigurimin e integrimit të GitLab dhe AppCenter përmes BitBucket.
Nevoja për një integrim të tillë lindi kur vendosej nisja automatike e testeve UI për një projekt ndër-platformë në Xamarin. Tutorial i detajuar poshtë prerjes!
* Unë do të bëj një artikull të veçantë në lidhje me automatizimin e testimit të UI në kushte ndër-platformë nëse publiku është i interesuar.
Unë gërmova vetëm një material të tillë
Detyrë: Vendosni nisjen automatike të testeve të UI në AppCenter, duke pasur parasysh që ekipi ynë përdor GitLab si një sistem kontrolli versionesh.
problem Doli që AppCenter nuk integrohet drejtpërdrejt me GitLab. Si një nga zgjidhjet u zgjodh anashkalimi përmes BitBucket.
hapat
1. Krijoni një depo bosh në BitBucket
Nuk e shoh të nevojshme ta përshkruaj këtë më në detaje :)
2. Vendosja e GitLab
Ne kemi nevojë që kur shtyjmë/bashkojmë në depo, ndryshimet të ngarkohen gjithashtu në BitBucket. Për ta bërë këtë, shtoni një runner (ose modifikoni skedarin ekzistues .gitlab-ci.yml).
Fillimisht shtojmë komanda 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 dëshiruar:
- git push --mirror https://username:[email protected]/username/projectname.git
Në rastin tim, ky është skedari që kam marrë:
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
Ne nisim ndërtimin, kontrollojmë që ndryshimet/skedarët tanë të jenë në BitBucket.
* siç ka treguar praktika, konfigurimi i çelësave SSH është opsional. Por, për çdo rast, unë do të jap një algoritëm për vendosjen e një lidhjeje përmes SSH më poshtë
Lidhja përmes SSH
Së pari ju duhet të gjeneroni një çelës SSH. Për këtë janë shkruar shumë artikuj. Për shembull, mund të shikoni
Çelësat e krijuar duken diçka si kjo:
Më tej Çelësi sekret duhet të shtohet si variabël në GitLab. Për ta bërë këtë, shkoni te Settings > CI/CD > Environment Variables. Shtoni TË GJITHA përmbajtjen e skedarit në të cilin keni ruajtur çelësin sekret. Le ta quajmë ndryshoren SSH_PRIVATE_KEY.
* ky skedar, ndryshe nga skedari i çelësit publik, nuk do të ketë shtesën
E shkëlqyeshme, më pas duhet të shtoni çelësin publik në BitBucket. Për ta bërë këtë, hapni depon dhe shkoni te Settings > Keys Access.
Këtu klikojmë Add Key dhe fusim përmbajtjen e skedarit me çelësin publik (skedari me shtesën .pub).
Hapi tjetër është përdorimi i çelësave në gitlab-runner. Përdorni këto komanda, por zëvendësoni yjet me të dhënat tuaja
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. Vendosja e AppCenter
Ne krijojmë një aplikacion të ri në AppCenter.
Specifikoni gjuhën/platformën
Tjetra, shkoni te seksioni Ndërtimi i aplikacionit të krijuar rishtazi. Aty zgjedhim BitBucket dhe depon e krijuar në hapin 1.
E shkëlqyeshme, tani duhet të konfigurojmë ndërtimin. Për ta bërë këtë, gjeni ikonën e ingranazheve
Në parim, gjithçka është intuitive. Zgjidhni një projekt dhe konfigurim. Nëse është e nevojshme, aktivizoni nisjen e testeve pas ndërtimit. Ata do të fillojnë automatikisht.
Në thelb, kjo është e gjitha. Duket e thjeshtë, por, natyrisht, gjithçka nuk do të shkojë mirë. Prandaj, unë do të përshkruaj disa gabime që kam hasur gjatë punës:
'ssh-keygen' nuk njihet si komandë e brendshme ose e jashtme.
Ndodh gjithashtu sepse rruga drejt ssh-keygen.exe nuk shtohet në variablat e mjedisit.
Ka dy opsione: shtoni C:Program FilesGitusrbin te Environment Variables (do të aplikohet pas rindezjes së makinës), ose nisni konsolën nga kjo direktori.
AppCenter është lidhur me llogarinë e gabuar të BitBucket?
Për të zgjidhur problemin, duhet të shkëputni llogarinë tuaj BitBucket nga AppCenter. Ne hyjmë në llogarinë e gabuar të BitBucket dhe shkojmë në profilin e përdoruesit.
Më pas, shkoni te Settings > Access Management > OAuth
Kliko Revoko për të shkëputur llogarinë tënde.
Pas kësaj, duhet të identifikoheni me llogarinë e kërkuar BitBucket.
* Si mjet i fundit, pastroni gjithashtu cache-in e shfletuesit tuaj.
Tani le të shkojmë te AppCenter. shkoni te seksioni Build, klikoni Shkëputni llogarinë BitBucket
Kur llogaria e vjetër shkëputet, ne e lidhim përsëri AppCenter. Tani në llogarinë e dëshiruar.
'eval' nuk njihet si komandë e brendshme ose e jashtme
Ne e përdorim atë në vend të një komande
- eval $(ssh-agent -s)
Skuadra:
- ssh-agent
Në disa raste, do t'ju duhet ose të specifikoni shtegun e plotë për në C:Program FilesGitusrbinssh-agent.exe, ose ta shtoni këtë shteg te variablat e sistemit në makinën ku ekzekutuesi po ekzekuton
AppCenter Build po përpiqet të nisë një ndërtim për një projekt nga një depo e vjetëruar bitBucket
Në rastin tim, problemi lindi sepse punoja me shumë llogari. Vendosa të pastroj cache-in.
Burimi: www.habr.com