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
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
Déi generéiert Schlësselen kucken sou eppes aus:
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
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.
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.
Spezifizéiert d'Sprooch / Plattform
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
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.
Als nächst gitt op Settings> Access Management> OAuth
Klickt op Revoke fir Äre Kont ze verbannen.
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
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