Integrimi AppCenter dhe GitLab

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ë një artikull. Prandaj, artikulli im mund të ndihmojë dikë.

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 këtu.
Çelësat e krijuar duken diçka si kjo:
Integrimi AppCenter dhe GitLab

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

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.

Integrimi AppCenter dhe GitLab

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.

Integrimi AppCenter dhe GitLab

Specifikoni gjuhën/platformën

Integrimi AppCenter dhe GitLab

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

Integrimi AppCenter dhe GitLab

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.

Integrimi AppCenter dhe GitLab

Më pas, shkoni te Settings > Access Management > OAuth

Integrimi AppCenter dhe GitLab

Kliko Revoko për të shkëputur llogarinë tënde.

Integrimi AppCenter dhe GitLab

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

Integrimi AppCenter dhe GitLab

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

Shto një koment