AppCenter an GitLab Integratioun

Tryam, Moien!

Ech wéilt gär iwwer meng Erfahrung beim Ariichten vun GitLab an AppCenter Integratioun iwwer BitBucket schwätzen.

De Besoin fir esou Integratioun ass entstanen wann Dir automatesch Start vun UI Tester fir e Cross-Plattform Projet op Xamarin opstellt. Detailléiert Tutorial ënner dem Schnëtt!

* Ech maachen en separaten Artikel iwwer d'Automatiséierung vun UI Testen a Cross-Plattform Bedéngungen wann de Public interesséiert ass.

Ech hunn nëmmen een esou Material gegruewen Artikel. Dofir kann mäin Artikel engem hëllefen.

Objective: Setzt automatesch Start vun UI Tester op AppCenter op, well eis Team GitLab als Versiounskontrollsystem benotzt.

Problem Et huet sech erausgestallt datt AppCenter net direkt mat GitLab integréiert. Bypass via BitBucket gouf als eng vun de Léisunge gewielt.

Schrëtt

1. Erstellt en eidele Repository op BitBucket

Ech gesinn net de Besoin dëst méi am Detail ze beschreiwen :)

2. Ariichten GitLab

Mir brauchen dat wann Dir an de Repository dréckt / fusionéiert, Ännerungen och op BitBucket eropgeluede ginn. Fir dëst ze maachen, füügt e Leefer (oder ännert déi existent .gitlab-ci.yml Datei).

Als éischt fügen mir Kommandoen un d'Sektioun before_scripts

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

Füügt dann de folgende Kommando op déi gewënscht Etapp:

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

A mengem Fall ass dëst de Fichier deen ech krut:

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

Mir starten de Build, kontrolléiert datt eis Ännerungen / Dateien op BitBucket sinn.
* wéi d'Praxis gewisen huet, SSH Schlësselen opzestellen ass fakultativ. Awer just am Fall wäert ech en Algorithmus ubidden fir eng Verbindung iwwer SSH hei ënnen opzestellen

Verbindung iwwer SSH

Als éischt musst Dir en SSH Schlëssel generéieren. Vill Artikele sinn iwwer dëst geschriwwen. Zum Beispill kënnt Dir kucken hei.
Déi generéiert Schlësselen kucken sou eppes aus:
AppCenter an GitLab Integratioun

weider De geheime Schlëssel muss als Variabel op GitLab bäigefüügt ginn. Fir dëst ze maachen, gitt op Settings> CI / CD> Environment Variables. Füügt ALL Inhalt vun der Datei an där Dir de geheime Schlëssel gespäichert hutt. Loosst eis d'Variabel SSH_PRIVATE_KEY nennen.
* dës Datei, am Géigesaz zu der ëffentlecher Schlësseldatei, wäert d'Extensioun net hunn
AppCenter an GitLab Integratioun

Super, als nächst musst Dir den ëffentleche Schlëssel op BitBucket addéieren. Fir dëst ze maachen, öffnen de Repository a gitt op Settings> Access Keys.

AppCenter an GitLab Integratioun

Hei klickt Schlëssel addéieren an den Inhalt vun der Datei mat dem ëffentleche Schlëssel setzen (Datei mat der Extensioun .pub).

De nächste Schrëtt ass d'Schlësselen am gitlab-runner ze benotzen. Benotzt dës Kommandoen, awer ersetzt d'Asterisken mat Ären Detailer

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

Mir kreéieren eng nei Applikatioun op AppCenter.

AppCenter an GitLab Integratioun

Spezifizéiert d'Sprooch / Plattform

AppCenter an GitLab Integratioun

Als nächst gitt op d'Build Sektioun vun der nei erstallt Applikatioun. Do wielt mir BitBucket an de Repository erstallt am Schrëtt 1.

Super, elo musse mir de Bau konfiguréieren. Fir dëst ze maachen, fannt Dir d'Gitt Ikon

AppCenter an GitLab Integratioun

Am Prinzip ass alles intuitiv. Wielt e Projet a Konfiguratioun. Wann néideg, aktivéiert de Start vun Tester nom Bau. Si fänken automatesch un.

Prinzipiell ass dat alles. Et kléngt einfach, awer natierlech geet alles net glat. Dofir wäert ech e puer Feeler beschreiwen, déi ech begéint hunn wärend ech schaffen:

'ssh-keygen' gëtt net als intern oder extern Kommando unerkannt.

Et geschitt och well de Wee op ssh-keygen.exe net un d'Ëmfeldvariablen bäigefüügt gëtt.
Et ginn zwou Méiglechkeeten: Füügt C:ProgrammdateienGitusrbin un Ëmweltvariablen (gëtt applizéiert nodeems d'Maschinn nei gestart gëtt), oder lancéiert d'Konsole aus dësem Verzeichnis.

AppCenter op de falsche BitBucket Kont verbonnen?

Fir de Problem ze léisen, musst Dir Äre BitBucket Kont vum AppCenter unlinken. Mir aloggen op de falsche BitBucket Kont a gitt op de Benotzerprofil.

AppCenter an GitLab Integratioun

Als nächst gitt op Settings> Access Management> OAuth

AppCenter an GitLab Integratioun

Klickt op Revoke fir Äre Kont ze verbannen.

AppCenter an GitLab Integratioun

Duerno musst Dir mat dem erfuerderleche BitBucket Kont aloggen.
* Als leschten Auswee, läschen och Äre Browser Cache.

Loosst eis elo op AppCenter goen. gitt op d'Build Sektioun, klickt op Deconnect BitBucket Kont

AppCenter an GitLab Integratioun

Wann den ale Kont net verlinkt ass, verlinke mir AppCenter erëm. Elo op de gewënschte Kont.

'eval' gëtt net als intern oder extern Kommando unerkannt

Mir benotzen et amplaz vun engem Kommando

  - eval $(ssh-agent -s)

Equipe:

  - ssh-agent

A verschiddene Fäll musst Dir entweder de komplette Wee op C:Program FilesGitusrbinssh-agent.exe spezifizéieren, oder dëse Wee an d'Systemvariablen op der Maschinn addéieren wou de Leefer leeft

AppCenter Build probéiert e Build fir e Projet aus engem alen BitBucket Repository ze lancéieren

A mengem Fall ass de Problem entstanen well ech mat méi Konten geschafft hunn. Ech hu beschloss, de Cache ze läschen.

Source: will.com

Setzt e Commentaire