AppCenteri ja GitLabi integreerimine

Tryam, tere!

Tahaksin rääkida oma kogemusest GitLabi ja AppCenteri integreerimise seadistamisel BitBucketi kaudu.

Vajadus sellise integratsiooni järele tekkis Xamarini platvormidevahelise projekti kasutajaliidese testide automaatse käivitamise seadistamisel. Üksikasjalik õpetus lõike all!

* Kui avalikkus on huvitatud, teen eraldi artikli kasutajaliidese testimise automatiseerimise kohta platvormideüleses tingimustes.

Kaevasin välja ainult ühe sellise materjali artiklit. Seetõttu võib minu artikkel kedagi aidata.

Ülesanne: seadistage AppCenteris kasutajaliidese testide automaatne käivitamine, kuna meie meeskond kasutab versioonihaldussüsteemina GitLabi.

probleem Selgus, et AppCenter ei integreeru GitLabiga otse. Üheks lahenduseks valiti ümbersõit BitBucketi kaudu.

Шаги

1. Looge BitBucketis tühi hoidla

Ma ei näe vajadust seda täpsemalt kirjeldada :)

2. GitLabi seadistamine

Vajame, et hoidlasse lükates/ühendades laetaks muudatused üles ka BitBucketisse. Selleks lisage jooksja (või redigeerige olemasolevat .gitlab-ci.yml faili).

Esmalt lisame käsud jaotisesse before_scripts

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

Seejärel lisage soovitud etappi järgmine käsk:

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

Minu puhul on see fail, mille sain:

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 ehituse, kontrollime, kas meie muudatused/failid on BitBucketis.
* Nagu praktika on näidanud, on SSH-võtmete seadistamine valikuline. Aga igaks juhuks annan allpool algoritmi SSH kaudu ühenduse loomiseks

Ühendus SSH kaudu

Kõigepealt peate looma SSH-võtme. Selle kohta on kirjutatud palju artikleid. Näiteks võite vaadata siin.
Loodud võtmed näevad välja umbes sellised:
AppCenteri ja GitLabi integreerimine

Edasi Salajane võti tuleb GitLabis muutujana lisada. Selleks avage Seaded > CI/CD > Keskkonnamuutujad. Lisage KOGU selle faili sisu, kuhu salajase võtme salvestasite. Kutsume muutujat SSH_PRIVATE_KEY.
* erinevalt avaliku võtme failist ei ole sellel failil laiendit
AppCenteri ja GitLabi integreerimine

Suurepärane, järgmiseks peate BitBucketile lisama avaliku võtme. Selleks avage hoidla ja valige Sätted > Pääsuvõtmed.

AppCenteri ja GitLabi integreerimine

Siin klõpsame Lisa võti ja sisestame avaliku võtmega faili sisu (fail laiendiga .pub).

Järgmine samm on võtmete kasutamine gitlab-runneris. Kasutage neid käske, kuid asendage tärnid oma andmetega

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

Loome AppCenteris uue rakenduse.

AppCenteri ja GitLabi integreerimine

Määrake keel/platvorm

AppCenteri ja GitLabi integreerimine

Järgmisena minge vastloodud rakenduse jaotisesse Ehitamine. Seal valime BitBucketi ja 1. sammus loodud hoidla.

Suurepärane, nüüd peame ehituse konfigureerima. Selleks leidke hammasrattaikoon

AppCenteri ja GitLabi integreerimine

Põhimõtteliselt on seal kõik intuitiivne. Valige projekt ja konfiguratsioon. Vajadusel lubage testide käivitamine pärast ehitamist. Need käivituvad automaatselt.

Põhimõtteliselt on see kõik. See kõlab lihtsalt, kuid loomulikult ei lähe kõik sujuvalt. Seetõttu kirjeldan mõningaid tõrkeid, millega töötamise ajal kokku puutusin:

'ssh-keygen' ei tuvastata sisemise ega välise käsuna.

See ilmneb ka seetõttu, et ssh-keygen.exe teed ei lisata keskkonnamuutujatele.
On kaks võimalust: lisada keskkonnamuutujatele C:Program FilesGitusrbin (rakendatakse pärast masina taaskäivitamist) või käivitage konsool sellest kataloogist.

Kas AppCenter on ühendatud vale BitBucketi kontoga?

Probleemi lahendamiseks peate oma BitBucketi konto ja AppCenteri linkimise tühistama. Logime sisse valele BitBucketi kontole ja läheme kasutajaprofiilile.

AppCenteri ja GitLabi integreerimine

Järgmisena avage Seaded > Juurdepääsu haldamine > OAuth

AppCenteri ja GitLabi integreerimine

Konto linkimise tühistamiseks klõpsake nuppu Tühista.

AppCenteri ja GitLabi integreerimine

Pärast seda peate sisse logima vajaliku BitBucketi kontoga.
* Viimase abinõuna tühjendage ka brauseri vahemälu.

Nüüd läheme AppCenterisse. minge jaotisse Ehitamine, klõpsake käsul Katkesta BitBucketi konto ühendus

AppCenteri ja GitLabi integreerimine

Kui vana konto linkimine tühistatakse, lingime AppCenteri uuesti. Nüüd soovitud kontole.

'eval' ei tuvastata sisemise ega välise käsuna

Me kasutame seda käsu asemel

  - eval $(ssh-agent -s)

Meeskond:

  - ssh-agent

Mõnel juhul peate määrama faili C:Program FilesGitusrbinssh-agent.exe täieliku tee või lisama selle tee süsteemimuutujatele masinas, kus jooksja töötab.

AppCenter Build proovib käivitada projekti jaoks ehitust vananenud bitBucketi hoidlast

Minu puhul tekkis probleem seetõttu, et töötasin mitme kontoga. Otsustasin vahemälu tühjendada.

Allikas: www.habr.com

Lisa kommentaar