AppCenter'i ja GitLab'i integreerimine

Tere, tere pÀevast!

Soovin rÀÀkida oma kogemusest GitLabi ja AppCenteri integreerimise seadistamisel BitBucketiga.

Sellise integreerimise vajadus tekkis automaatsete UI testide kĂ€ivitamise seadistamisel plokiahelatööstuses Xamarin. Üksikasjalik Ă”petus allpool!

* Kui publik huvitub, teen eraldi artikli UI testimise automatiseerimisest mitme platvormi tingimustes.

Sellist materjali leidsin ainult ĂŒhe artiklit. SeetĂ”ttu vĂ”ib minu artikkel kedagi aidata.

Ülesanne: Seada automaatsete UI testide kĂ€ivitamine AppCenteris, kui meie meeskond kasutab GitLabit versioonihaldussĂŒsteemina.

Probleem selgus, et AppCenter ei integreeru otse GitLabiga. Üks lahendustest oli valitud ringtee kaudu BitBucket.

Sammud

1. Loome BitBucketis tĂŒhja repot.

Ma ei nĂ€e vajadust seda tĂ€psemalt kirjeldada 🙂

2. Seame ĂŒles GitLabi

Me peame tagama, et push/merge reposse kaasa tuleb ka BitBucketi. Selleks lisame runneri (vÔi redigeerime olemasolevat .gitlab-ci.yml faili).

Esmalt lisame kÀsud before_scripts sektsiooni

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

SeejÀrel lisame jÀrgmise kÀsu vajalikku etappi:

- git push --mirror https://username:password@bitbucket.org/username/projectname.git

Minu puhul sai jÀrgnev fail

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

KĂ€ivitame build'i, kontrollime, et meie muudatused/failid on BitBucketis.
* nagu praktika nĂ€itas, SSH vĂ”tmete seadistamine ei ole kohustuslik. Kuid igaks juhuks annan allpool vĂ€lja SSH kaudu ĂŒhenduse seadistamise algoritmi.

SSH kaudu ĂŒhendamine

Esmalt tuleb genereerida SSH vÔtmed. Sellest on kirjutatud palju artikleid. NÀiteks vÔite vaadata siit.
Genereritud vÔtmed nÀevad vÀlja umbes sellised:
AppCenter'i ja GitLab'i integreerimine

Edasi salajane vĂ”tme peab lisama muutujana GitLabi. Selleks lĂ€heme seadetesse > CI/CD > Keskkonnamuutujad. Lisame KÕIK faili sisu, kuhu salvestasite salajase vĂ”tme. Nimetame muutuja SSH_PRIVATE_KEY.
* see fail, erinevalt avaliku vÔtme failist, ei saa laienemist
AppCenter'i ja GitLab'i integreerimine

SuurepÀrane, edasi tuleb lisada avalik vÔti BitBucketisse. Selleks avame repot, lÀheme seadete juurde > JuurdepÀÀsu vÔtmed.

AppCenter'i ja GitLab'i integreerimine

Siin vajutame Lisa vÔtme ja kleepime avaliku vÔtme faili sisu (fail, millel on .pub laiend).

JÀrgmine samm on vÔtmete kasutamine gitlab-runneris. Kasutage neid kÀske, kuid asendage tÀhtedega oma andmed

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. AppCenteri seadistamine

Loome uue rakenduse AppCenteris.

AppCenter'i ja GitLab'i integreerimine

MÀÀrame keele/platvorma

AppCenter'i ja GitLab'i integreerimine

SeejÀrel lÀheme just loodud rakenduse Build sektsiooni. Valime seal BitBucketi ja Eelmisel etapil loodud hoidla.

SuurepĂ€rane, nĂŒĂŒd peame seadistama build'i. Selle jaoks otsime hammasratta ikooni

AppCenter'i ja GitLab'i integreerimine

PĂ”himĂ”tteliselt on seal kĂ”ik intuitiivselt arusaadav. Valime projekti ja konfiguratsiooni. Vajadusel lĂŒlitame sisse testide kĂ€ivitamise pĂ€rast build'i. Need kĂ€ivitatakse automaatselt.

PÔhimÔtteliselt on see kÔik. KÔlab mitte keeruliselt, aga loomulikult ei suju kÔik sujuvalt. SeetÔttu kirjeldan mÔningaid vigu, millega olen oma töö kÀigus kokku puutunud:

‘ssh-keygen’ ei ole tunnustatud sisemise ega vĂ€lise kĂ€skuna.

See tekib seetÔttu, et teed ssh-keygen.exe-le ei ole lisatud keskkonnamuutujatesse.
On kaks vÔimalust: lisage C:Program FilesGitusrbin Enviroment Variables'i (rakendub pÀrast masina taaskÀivitamist), vÔi kÀivitage konsool sellest kataloogist.

AppCenter ei ole ĂŒhendatud Ă”ige BitBucketi kontoga?

Probleemi lahendamiseks tuleb BitBucketi konto AppCenterist eemaldada. Logime vale BitBucketi kontoga sisse ja lÀheme kasutaja profiili.

AppCenter'i ja GitLab'i integreerimine

SeejÀrel lÀheme seadistustesse Settings > Access Management > OAuth

AppCenter'i ja GitLab'i integreerimine

Klickige Revoke, et konto eemaldada.

AppCenter'i ja GitLab'i integreerimine

PÀrast seda tuleb siseneda Ôigele BitBucketi kontole
* Viimase abinĂ”una on soovitatav ka brauseri vahemĂ€lu tĂŒhjendada

NĂŒĂŒd lĂ€heme AppCenterisse. liigume Build sektsiooni, klĂ”psame Disconnect BitBucket account

AppCenter'i ja GitLab'i integreerimine

Kui vana konto on eemaldatud, seome AppCenteri uuesti. NĂŒĂŒd Ă”ige kontoga.

‘eval’ ei ole tunnustatud sisemise ega vĂ€lise kĂ€skuna

Kasutagem selle asemel kÀsku

  - eval $(ssh-agent -s)

KĂ€sku:

  - ssh-agent

MĂ”nel juhul vĂ”ib olla vajalik kas mĂ€rkida tĂ€ielik tee C:Program FilesGitusrbinssh-agent.exe, vĂ”i lisada see tee sĂŒsteemi muutujatesse masinas, kus runner töötleb

AppCenter Build ĂŒritab kĂ€ivitada build'i projekti jaoks mitteaktuaalsest bitBucketi hoidlast

Minu puhul tekkis probleem seetÔttu, et töötasin mitme kontoga. Probleem lahendati vahemÀlu kustutamisega.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster