Integrimi i AppCenter dhe GitLab

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. artikull. 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.git

NĂ« 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.git

Nisim 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... këtu.
ÇelĂ«sat e gjeneruar duken mĂ« pak kĂ«shtu:
Integrimi i AppCenter dhe GitLab

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ë.
Integrimi i AppCenter dhe GitLab

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

Integrimi i AppCenter dhe GitLab

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/*****/*.git

3. Konfigurimi i AppCenter

Krijojmë një aplikacion të ri në AppCenter.

Integrimi i AppCenter dhe GitLab

Specifikoni gjuhën/platformën

Integrimi i AppCenter dhe GitLab

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.

Integrimi i AppCenter dhe GitLab

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.

Integrimi i AppCenter dhe GitLab

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

Integrimi i AppCenter dhe GitLab

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

Integrimi i AppCenter dhe GitLab

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.

Integrimi i AppCenter dhe GitLab

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-agent

Në 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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster