„AppCenter“ ir „GitLab“ integracija

Tryam, labas!

Norėčiau pakalbėti apie savo patirtį nustatant GitLab ir AppCenter integraciją per BitBucket.

Tokios integracijos poreikis atsirado nustatant automatinį UI testų paleidimą kelių platformų projektui „Xamarin“. Išsami pamoka po pjūviu!

* Jei visuomenė susidomės, parašysiu atskirą straipsnį apie vartotojo sąsajos testavimo automatizavimą įvairiose platformose.

Iškasiau tik vieną tokią medžiagą straipsnis. Todėl mano straipsnis gali kam nors padėti.

Užduotis: nustatykite automatinį vartotojo sąsajos testų paleidimą „AppCenter“, nes mūsų komanda naudoja „GitLab“ kaip versijos valdymo sistemą.

problema Paaiškėjo, kad „AppCenter“ nėra tiesiogiai integruotas su „GitLab“. Kaip vienas iš sprendimų buvo pasirinktas apėjimas per BitBucket.

Шаги

1. Sukurkite tuščią „BitBucket“ saugyklą

Nematau reikalo plačiau aprašyti :)

2. „GitLab“ nustatymas

Mums reikia, kad stumiant / sujungiant į saugyklą, pakeitimai taip pat būtų įkeliami į BitBucket. Norėdami tai padaryti, pridėkite bėgiką (arba redaguokite esamą .gitlab-ci.yml failą).

Pirmiausia į skyrių „for_scripts“ pridedame komandas

 - git config --global user.email "user@email"
 - git config --global user.name "username"

Tada į norimą etapą pridėkite šią komandą:

- git push --mirror https://username:[email protected]/username/projectname.git

Mano atveju, tai yra failas, kurį gavau:

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

Paleidžiame kūrimą, patikriname, ar mūsų pakeitimai / failai yra „BitBucket“.
* Kaip parodė praktika, SSH raktų nustatymas yra neprivalomas. Bet tik tuo atveju žemiau pateiksiu algoritmą, kaip nustatyti ryšį per SSH

Ryšys per SSH

Pirmiausia turite sugeneruoti SSH raktą. Apie tai parašyta daug straipsnių. Pavyzdžiui, galite pažiūrėti čia.
Sugeneruoti raktai atrodo maždaug taip:
„AppCenter“ ir „GitLab“ integracija

Toliau Slaptas raktas reikia pridėti kaip kintamąjį prie „GitLab“. Norėdami tai padaryti, eikite į Nustatymai > CI/CD > Aplinkos kintamieji. Pridėkite VISĄ failo, kuriame išsaugojote slaptąjį raktą, turinį. Iškvieskime kintamąjį SSH_PRIVATE_KEY.
* šis failas, skirtingai nei viešojo rakto failas, neturės plėtinio
„AppCenter“ ir „GitLab“ integracija

Puiku, tada turite pridėti viešąjį raktą prie „BitBucket“. Norėdami tai padaryti, atidarykite saugyklą ir eikite į Nustatymai > Prieigos raktai.

„AppCenter“ ir „GitLab“ integracija

Čia paspaudžiame Pridėti raktą ir įterpiame failo turinį su viešuoju raktu (failas su plėtiniu .pub).

Kitas žingsnis yra naudoti gitlab-runner klavišus. Naudokite šias komandas, bet pakeiskite žvaigždutes savo informacija

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. „AppCenter“ nustatymas

Sukuriame naują programą „AppCenter“.

„AppCenter“ ir „GitLab“ integracija

Nurodykite kalbą / platformą

„AppCenter“ ir „GitLab“ integracija

Tada eikite į naujai sukurtos programos skyrių Sukurti. Ten pasirenkame BitBucket ir 1 veiksme sukurtą saugyklą.

Puiku, dabar turime sukonfigūruoti statybą. Norėdami tai padaryti, raskite krumpliaračio piktogramą

„AppCenter“ ir „GitLab“ integracija

Iš principo ten viskas intuityvu. Pasirinkite projektą ir konfigūraciją. Jei reikia, sukūrę įgalinkite bandymų paleidimą. Jie prasidės automatiškai.

Iš esmės tai viskas. Skamba paprastai, bet, žinoma, viskas nebus sklandžiai. Todėl aprašysiu keletą klaidų, su kuriomis susidūriau dirbdama:

„ssh-keygen“ neatpažįstama kaip vidinė ar išorinė komanda.

Taip pat atsitinka todėl, kad kelias į ssh-keygen.exe nėra įtrauktas į aplinkos kintamuosius.
Yra dvi parinktys: pridėti C:Program FilesGitusrbin prie aplinkos kintamųjų (bus pritaikyta iš naujo paleidus įrenginį) arba paleisti konsolę iš šio katalogo.

„AppCenter“ prijungtas prie netinkamos „BitBucket“ paskyros?

Norėdami išspręsti problemą, turite atsieti BitBucket paskyrą nuo AppCenter. Prisijungiame prie netinkamos BitBucket paskyros ir einame į vartotojo profilį.

„AppCenter“ ir „GitLab“ integracija

Tada eikite į Nustatymai > Prieigos valdymas > OAuth

„AppCenter“ ir „GitLab“ integracija

Spustelėkite Anuliuoti, kad atsietumėte paskyrą.

„AppCenter“ ir „GitLab“ integracija

Po to turite prisijungti naudodami reikiamą BitBucket paskyrą.
* Kraštutiniu atveju taip pat išvalykite naršyklės talpyklą.

Dabar eikime į „AppCenter“. eikite į skyrių Sukūrimas, spustelėkite Atjungti BitBucket paskyrą

„AppCenter“ ir „GitLab“ integracija

Kai senoji paskyra atsiejama, vėl susiesime „AppCenter“. Dabar į norimą paskyrą.

„eval“ neatpažįstama kaip vidinė ar išorinė komanda

Mes naudojame jį vietoj komandos

  - eval $(ssh-agent -s)

Komanda:

  - ssh-agent

Kai kuriais atvejais turėsite nurodyti visą kelią į C:Program FilesGitusrbinssh-agent.exe arba įtraukti šį kelią į sistemos kintamuosius kompiuteryje, kuriame veikia bėgikas.

„AppCenter Build“ bando paleisti projekto kūrimą iš pasenusios „bitBucket“ saugyklos

Mano atveju problema kilo dėl to, kad dirbau su keliomis paskyromis. Nusprendžiau išvalyti talpyklą.

Šaltinis: www.habr.com

Добавить комментарий