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ą
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
Sugeneruoti raktai atrodo maždaug taip:
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
Puiku, tada turite pridėti viešąjį raktą prie „BitBucket“. Norėdami tai padaryti, atidarykite saugyklą ir eikite į Nustatymai > Prieigos raktai.
Č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“.
Nurodykite kalbą / platformą
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ą
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į.
Tada eikite į Nustatymai > Prieigos valdymas > OAuth
Spustelėkite Anuliuoti, kad atsietumėte paskyrą.
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ą
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