Integrimi i AppCenter dhe GitLab

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ë artikullin. 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.git

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

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

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

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

Integrimi i AppCenter dhe GitLab

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

Integrimi i AppCenter dhe GitLab

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.

Integrimi i AppCenter dhe GitLab

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

Integrimi i AppCenter dhe GitLab

Shtypni Revok për të lidhur llogarinë.

Integrimi i AppCenter dhe GitLab

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.

Integrimi i AppCenter dhe GitLab

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

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

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