AppCenter og GitLab samþætting

Tryam, halló!

Mig langar að tala um reynslu mína af því að setja upp GitLab og AppCenter samþættingu í gegnum BitBucket.

Þörfin fyrir slíka samþættingu kom upp þegar sett var upp sjálfvirka ræsingu á HÍ prófum fyrir þverpallaverkefni á Xamarin. Ítarleg kennslumynd fyrir neðan klippuna!

* Ég mun gera sérstaka grein um sjálfvirkan notendaviðmótsprófun við aðstæður á milli palla ef almenningur hefur áhuga.

Ég gróf bara upp eitt slíkt efni grein. Þess vegna gæti greinin mín hjálpað einhverjum.

Verkefni: Settu upp sjálfvirka ræsingu á HÍ prófum á AppCenter, í ljósi þess að teymið okkar notar GitLab sem útgáfustýringarkerfi.

vandamálið Það kom í ljós að AppCenter samþættist ekki beint við GitLab. Hjábraut í gegnum BitBucket var valin sem ein af lausnunum.

Skref

1. Búðu til tóma geymslu á BitBucket

Ég sé ekki þörf á að lýsa þessu nánar :)

2. Uppsetning GitLab

Við þurfum að þegar ýtt er/sameinað inn í geymsluna er breytingum einnig hlaðið upp á BitBucket. Til að gera þetta skaltu bæta við hlaupara (eða breyta núverandi .gitlab-ci.yml skrá).

Fyrst bætum við skipunum við before_scripts hlutann

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

Bættu síðan eftirfarandi skipun við æskilegt stig:

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

Í mínu tilfelli er þetta skráin sem ég fékk:

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

Við ræsum bygginguna, athugum hvort breytingarnar/skrárnar okkar séu á BitBucket.
* Eins og venjan hefur sýnt er valfrjálst að setja upp SSH lykla. En, bara í tilfelli, mun ég veita reiknirit til að setja upp tengingu í gegnum SSH hér að neðan

Tengist í gegnum SSH

Fyrst þarftu að búa til SSH lykil. Margar greinar hafa verið skrifaðar um þetta. Til dæmis er hægt að skoða hér.
Lyklarnir sem myndaðir eru líta eitthvað svona út:
AppCenter og GitLab samþætting

Nánar Leynilykillinn þarf að bæta við sem breytu í GitLab. Til að gera þetta, farðu í Stillingar > CI/CD > Umhverfisbreytur. Bættu við ALLT innihald skráarinnar sem þú vistaðir leynilykilinn í. Köllum breytuna SSH_PRIVATE_KEY.
* þessi skrá, ólíkt opinberu lykilskránni, mun ekki hafa endinguna
AppCenter og GitLab samþætting

Frábært, næst þarftu að bæta almenningslyklinum við BitBucket. Til að gera þetta skaltu opna geymsluna og fara í Stillingar > Aðgangslyklar.

AppCenter og GitLab samþætting

Hér smellum við á Bæta við lykli og setjum inn innihald skráarinnar með almenna lyklinum (skrá með endingunni .pub).

Næsta skref er að nota lyklana í gitlab-runner. Notaðu þessar skipanir, en skiptu stjörnunum út fyrir upplýsingarnar þínar

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. Uppsetning AppCenter

Við búum til nýtt forrit á AppCenter.

AppCenter og GitLab samþætting

Tilgreindu tungumálið/vettvanginn

AppCenter og GitLab samþætting

Næst skaltu fara í Byggja hluta nýstofnaða forritsins. Þar veljum við BitBucket og geymsluna sem var búin til í skrefi 1.

Frábært, nú þurfum við að stilla bygginguna. Til að gera þetta, finndu tannhjólstáknið

AppCenter og GitLab samþætting

Í grundvallaratriðum er allt þar leiðandi. Veldu verkefni og stillingar. Ef nauðsyn krefur, virkjaðu ræsingu prófana eftir byggingu. Þeir munu byrja sjálfkrafa.

Í grundvallaratriðum, það er allt. Það hljómar einfalt, en náttúrulega mun allt ekki ganga snurðulaust fyrir sig. Þess vegna mun ég lýsa nokkrum villum sem ég rakst á við vinnu:

'ssh-keygen' er ekki þekkt sem innri eða ytri skipun.

Það gerist líka vegna þess að slóðin að ssh-keygen.exe er ekki bætt við umhverfisbreyturnar.
Það eru tveir valkostir: bæta C:Program FilesGitusrbin við Umhverfisbreytur (verður beitt eftir endurræsingu vélarinnar), eða ræstu stjórnborðið úr þessari möppu.

AppCenter tengt við rangan BitBucket reikning?

Til að leysa vandamálið þarftu að aftengja BitBucket reikninginn þinn frá AppCenter. Við skráum okkur inn á rangan BitBucket reikning og förum í notendasniðið.

AppCenter og GitLab samþætting

Næst skaltu fara í Stillingar > Aðgangsstjórnun > OAuth

AppCenter og GitLab samþætting

Smelltu afturkalla til að aftengja reikninginn þinn.

AppCenter og GitLab samþætting

Eftir þetta þarftu að skrá þig inn með nauðsynlegum BitBucket reikningi.
* Sem síðasta úrræði skaltu líka hreinsa skyndiminni vafrans.

Nú skulum við fara í AppCenter. farðu í Build hlutann, smelltu á Aftengja BitBucket reikning

AppCenter og GitLab samþætting

Þegar gamli reikningurinn er aftengdur tengjum við AppCenter aftur. Nú að viðkomandi reikningi.

'eval' er ekki viðurkennt sem innri eða ytri skipun

Við notum það í staðinn fyrir skipun

  - eval $(ssh-agent -s)

Lið:

  - ssh-agent

Í sumum tilfellum verður þú annað hvort að tilgreina alla slóðina að C:Program FilesGitusrbinssh-agent.exe, eða bæta þessari slóð við kerfisbreyturnar á vélinni þar sem hlauparinn er í gangi

AppCenter Build er að reyna að setja af stað byggingu fyrir verkefni úr úreltri bitBucket geymslu

Í mínu tilviki kom vandamálið upp vegna þess að ég var að vinna með marga reikninga. Ég ákvað að hreinsa skyndiminni.

Heimild: www.habr.com

Bæta við athugasemd