Integreiddio AppCenter a GitLab

Tryam, helo!

Hoffwn siarad am fy mhrofiad wrth sefydlu integreiddio GitLab ac AppCenter trwy BitBucket.

Cododd yr angen am integreiddio o'r fath wrth sefydlu lansiad awtomatig o brofion UI ar gyfer prosiect traws-lwyfan ar Xamarin. Tiwtorial manwl o dan y toriad!

* Byddaf yn gwneud erthygl ar wahân am awtomeiddio profion UI mewn amodau traws-lwyfan os oes gan y cyhoedd ddiddordeb.

Dim ond un deunydd o'r fath wnes i ei gloddio erthygl. Felly, efallai y bydd fy erthygl yn helpu rhywun.

Gorchwyl: Sefydlu lansiad awtomatig o brofion UI ar AppCenter, o ystyried bod ein tîm yn defnyddio GitLab fel system rheoli fersiwn.

problem Daeth i'r amlwg nad yw AppCenter yn integreiddio'n uniongyrchol â GitLab. Dewiswyd ffordd osgoi trwy BitBucket fel un o'r atebion.

Camau

1. Creu ystorfa wag ar BitBucket

Dydw i ddim yn gweld yr angen i ddisgrifio hyn yn fwy manwl :)

2. Sefydlu GitLab

Mae angen i ni, wrth wthio / uno i mewn i'r ystorfa, newidiadau hefyd yn cael eu llwytho i fyny i BitBucket. I wneud hyn, ychwanegwch rhedwr (neu golygwch y ffeil .gitlab-ci.yml presennol).

Yn gyntaf rydym yn ychwanegu gorchmynion at yr adran before_scripts

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

Yna ychwanegwch y gorchymyn canlynol i'r cam a ddymunir:

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

Yn fy achos i, dyma'r ffeil a gefais:

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

Rydyn ni'n lansio'r adeilad, gwiriwch fod ein newidiadau / ffeiliau ar BitBucket.
* fel y dangosodd arfer, mae sefydlu allweddi SSH yn ddewisol. Ond, rhag ofn, byddaf yn darparu algorithm ar gyfer sefydlu cysylltiad trwy SSH isod

Cysylltu trwy SSH

Yn gyntaf mae angen i chi gynhyrchu allwedd SSH. Mae llawer o erthyglau wedi'u hysgrifennu am hyn. Er enghraifft, gallwch edrych yma.
Mae'r bysellau a gynhyrchir yn edrych rhywbeth fel hyn:
Integreiddio AppCenter a GitLab

Pellach Yr allwedd gyfrinachol angen ei ychwanegu fel newidyn i GitLab. I wneud hyn, ewch i Gosodiadau> CI/CD> Newidynnau Amgylcheddol. Ychwanegwch HOLL gynnwys y ffeil y gwnaethoch chi gadw'r allwedd gyfrinachol ynddi. Gadewch i ni alw'r newidyn SSH_PRIVATE_KEY.
* ni fydd gan y ffeil hon, yn wahanol i'r ffeil allwedd gyhoeddus, yr estyniad
Integreiddio AppCenter a GitLab

Gwych, nesaf mae angen ichi ychwanegu'r allwedd gyhoeddus i BitBucket. I wneud hyn, agorwch y storfa ac ewch i Gosodiadau> Allweddi Mynediad.

Integreiddio AppCenter a GitLab

Yma rydym yn clicio Ychwanegu Allwedd a mewnosod cynnwys y ffeil gyda'r allwedd gyhoeddus (ffeil gyda'r estyniad .pub).

Y cam nesaf yw defnyddio'r allweddi yn gitlab-runner. Defnyddiwch y gorchmynion hyn, ond rhowch eich manylion yn lle'r sêr

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

Rydyn ni'n creu cymhwysiad newydd ar AppCenter.

Integreiddio AppCenter a GitLab

Nodwch yr iaith/platfform

Integreiddio AppCenter a GitLab

Nesaf, ewch i adran Adeiladu y cymhwysiad sydd newydd ei greu. Yno rydym yn dewis BitBucket a'r ystorfa a grëwyd yng ngham 1.

Gwych, nawr mae angen i ni ffurfweddu'r adeilad. I wneud hyn, dewch o hyd i'r eicon gêr

Integreiddio AppCenter a GitLab

Mewn egwyddor, mae popeth yno yn reddfol. Dewiswch brosiect a chyfluniad. Os oes angen, galluogwch lansiad profion ar ôl adeiladu. Byddant yn cychwyn yn awtomatig.

Yn y bôn, dyna i gyd. Mae'n swnio'n syml, ond, yn naturiol, ni fydd popeth yn mynd yn esmwyth. Felly, byddaf yn disgrifio rhai gwallau y deuthum ar eu traws wrth weithio:

Nid yw 'ssh-keygen' yn cael ei gydnabod fel gorchymyn mewnol nac allanol.

Mae hefyd yn digwydd oherwydd nad yw'r llwybr i ssh-keygen.exe yn cael ei ychwanegu at y newidynnau amgylchedd.
Mae dau opsiwn: ychwanegu C:Program FilesGitusrbin at Newidynnau Amgylcheddol (bydd yn cael ei gymhwyso ar ôl ailgychwyn y peiriant), neu lansio'r consol o'r cyfeiriadur hwn.

AppCenter wedi'i gysylltu â'r cyfrif BitBucket anghywir?

I ddatrys y broblem, mae angen i chi ddatgysylltu'ch cyfrif BitBucket o AppCenter. Rydyn ni'n mewngofnodi i'r cyfrif BitBucket anghywir ac yn mynd i'r proffil defnyddiwr.

Integreiddio AppCenter a GitLab

Nesaf, ewch i Gosodiadau> Rheoli Mynediad> OAuth

Integreiddio AppCenter a GitLab

Cliciwch Diddymu i ddatgysylltu'ch cyfrif.

Integreiddio AppCenter a GitLab

Ar ôl hyn, mae angen i chi fewngofnodi gyda'r cyfrif BitBucket gofynnol.
* Fel dewis olaf, cliriwch storfa eich porwr hefyd.

Nawr, gadewch i ni fynd i AppCenter. ewch i'r adran Adeiladu, cliciwch Datgysylltu cyfrif BitBucket

Integreiddio AppCenter a GitLab

Pan fydd yr hen gyfrif wedi'i ddatgysylltu, rydyn ni'n cysylltu AppCenter eto. Yn awr at y cyfrif dymunol.

nid yw 'eval' yn cael ei gydnabod fel gorchymyn mewnol nac allanol

Rydyn ni'n ei ddefnyddio yn lle gorchymyn

  - eval $(ssh-agent -s)

Tîm:

  - ssh-agent

Mewn rhai achosion, bydd yn rhaid i chi naill ai nodi'r llwybr llawn i C:Program FilesGitusrbinssh-agent.exe, neu ychwanegu'r llwybr hwn at newidynnau'r system ar y peiriant lle mae'r rhedwr yn rhedeg

Mae AppCenter Build yn ceisio lansio adeiladwaith ar gyfer prosiect o ystorfa bitBucket hen ffasiwn

Yn fy achos i, cododd y broblem oherwydd fy mod yn gweithio gyda chyfrifon lluosog. Penderfynais glirio'r storfa.

Ffynhonnell: hab.com

Ychwanegu sylw