AppCenter kaj GitLab integriĝo

Tryam, saluton!

Mi ŝatus paroli pri mia sperto pri agordo de GitLab kaj AppCenter-integriĝo per BitBucket.

La bezono de tia integriĝo aperis dum la agordo de aŭtomata lanĉo de UI-testoj por transplatforma projekto sur Xamarin. Detala lernilo sub la tranĉo!

* Mi faros apartan artikolon pri aŭtomatigo de UI-testado en transplatformaj kondiĉoj se la publiko interesiĝas.

Mi elfosis nur unu tian materialon artikolo. Tial mia artikolo povas helpi iun.

Objektivo: Agordu aŭtomatan lanĉon de UI-testoj en AppCenter, ĉar nia teamo uzas GitLab kiel versio-kontrolsistemon.

problemo Montriĝis, ke AppCenter ne integriĝas rekte kun GitLab. Pretervojo per BitBucket estis elektita kiel unu el la solvoj.

Paŝoj

1. Kreu malplenan deponejon sur BitBucket

Mi ne vidas la bezonon priskribi ĉi tion pli detale :)

2. Agordi GitLab

Ni bezonas tion dum puŝado/kunfandado en la deponejon, ŝanĝoj ankaŭ estas alŝutitaj al BitBucket. Por fari tion, aldonu kurilon (aŭ redaktu la ekzistantan dosieron .gitlab-ci.yml).

Unue ni aldonas komandojn al la sekcio before_scripts

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

Poste aldonu la sekvan komandon al la dezirata stadio:

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

En mia kazo, jen la dosiero, kiun mi ricevis:

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

Ni lanĉas la konstruon, kontrolu, ke niaj ŝanĝoj/dosieroj estas sur BitBucket.
* kiel praktiko montris, agordo de SSH-ŝlosiloj estas laŭvola. Sed, ĉiaokaze, mi provizos algoritmon por agordi konekton per SSH sube

Konekto per SSH

Unue vi devas generi SSH-ŝlosilon. Multaj artikoloj estis skribitaj pri tio. Ekzemple, vi povas rigardi tie.
La generitaj ŝlosiloj aspektas kiel ĉi tio:
AppCenter kaj GitLab integriĝo

plia La sekreta ŝlosilo devas esti aldonita kiel variablo al GitLab. Por fari tion, iru al Agordoj> CI/KD> Mediaj Variabloj. Aldonu ĈIUJN la enhavon de la dosiero, en kiu vi konservis la sekretan ŝlosilon. Ni nomu la variablon SSH_PRIVATE_KEY.
* ĉi tiu dosiero, male al la publika ŝlosila dosiero, ne havos la etendon
AppCenter kaj GitLab integriĝo

Bonege, poste vi devas aldoni la publikan ŝlosilon al BitBucket. Por fari tion, malfermu la deponejon kaj iru al Agordoj> Alirŝlosiloj.

AppCenter kaj GitLab integriĝo

Ĉi tie ni klakas Aldoni Ŝlosilon kaj enmetas la enhavon de la dosiero kun la publika ŝlosilo (dosiero kun la etendo .pub).

La sekva paŝo estas uzi la ŝlosilojn en gitlab-runner. Uzu ĉi tiujn komandojn, sed anstataŭigu la steletojn per viaj detaloj

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

Ni kreas novan aplikaĵon en AppCenter.

AppCenter kaj GitLab integriĝo

Indiku la lingvon/platformon

AppCenter kaj GitLab integriĝo

Poste, iru al la sekcio Konstruo de la nove kreita aplikaĵo. Tie ni elektas BitBucket kaj la deponejon kreitan en la paŝo 1.

Bonege, nun ni devas agordi la konstruon. Por fari tion, trovu la ilan-ikonon

AppCenter kaj GitLab integriĝo

Principe ĉio tie estas intuicia. Elektu projekton kaj agordon. Se necese, ebligu la lanĉon de testoj post la konstruo. Ili komencos aŭtomate.

Esence, jen ĉio. Ĝi sonas simple, sed, nature, ĉio ne iros glate. Tial mi priskribos kelkajn erarojn, kiujn mi renkontis dum laboro:

'ssh-keygen' ne estas rekonita kiel interna aŭ ekstera komando.

Ĝi ankaŭ okazas ĉar la vojo al ssh-keygen.exe ne estas aldonita al la mediaj variabloj.
Estas du opcioj: aldonu C:Program FilesGitusrbin al Mediaj Variabloj (aplikiĝos post rekomenco de la maŝino), aŭ lanĉi la konzolon de ĉi tiu dosierujo.

AppCenter konektita al la malĝusta BitBucket-konto?

Por solvi la problemon, vi devas malligi vian BitBucket-konton de AppCenter. Ni ensalutas en la malĝustan BitBucket-konton kaj iras al la uzantprofilo.

AppCenter kaj GitLab integriĝo

Poste, iru al Agordoj > Aliradministrado > OAuth

AppCenter kaj GitLab integriĝo

Alklaku Revoki por malligi vian konton.

AppCenter kaj GitLab integriĝo

Post ĉi tio, vi devas ensaluti kun la bezonata BitBucket-konto.
* Kiel lasta rimedo, ankaŭ forigu vian retumilon kaŝmemoron.

Nun ni iru al AppCenter. iru al la sekcio Konstruo, alklaku Malkonekti BitBucket-konton

AppCenter kaj GitLab integriĝo

Kiam la malnova konto estas malligita, ni denove ligas AppCenter. Nun al la dezirata konto.

'eval' ne estas rekonita kiel interna aŭ ekstera komando

Ni uzas ĝin anstataŭ ordono

  - eval $(ssh-agent -s)

Teamo:

  - ssh-agent

En iuj kazoj, vi devos aŭ specifi la plenan vojon al C:Program FilesGitusrbinssh-agent.exe, aŭ aldoni ĉi tiun vojon al la sistemaj variabloj sur la maŝino, kie la kuristo funkcias.

AppCenter Build provas lanĉi konstruaĵon por projekto el malaktuala deponejo de bitBucket

En mia kazo, la problemo ekestis ĉar mi laboris kun pluraj kontoj. Mi decidis forigi la kaŝmemoron.

fonto: www.habr.com

Aldoni komenton