Tryam, salutu!
Vogliu parlà di a mo sperienza in a creazione di l'integrazione di GitLab è AppCenter via BitBucket.
A necessità di una tale integrazione hè nata quandu si stabilisce u lanciu automaticu di teste UI per un prughjettu multipiattaforma in Xamarin. Tutorial detallatu sottu u cut!
* Fararaghju un articulu separatu nantu à l'automatizazione di e teste di UI in cundizioni multipiattaforma se u publicu hè interessatu.
Aghju scavatu solu un tali materiale
Objettivu: Configurate u lanciu automaticu di teste UI in AppCenter, postu chì a nostra squadra usa GitLab cum'è sistema di cuntrollu di versione.
prublemu Hè risultatu chì AppCenter ùn integra micca direttamente cù GitLab. Bypass via BitBucket hè statu sceltu cum'è una di e suluzione.
Passi
1. Crea un repository viotu nantu à BitBucket
Ùn vecu micca bisognu di descriverà questu in più dettagliu :)
2. Stallà GitLab
Avemu bisognu chì quandu spinghje / fusione in u repository, i cambiamenti sò ancu caricati in BitBucket. Per fà questu, aghjunghje un runner (o edità u schedariu esistenti .gitlab-ci.yml).
Prima aghjustemu cumandamenti à a sezione before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"
Allora aghjunghje u cumandimu seguitu à u stadiu desideratu:
- git push --mirror https://username:[email protected]/username/projectname.git
In u mo casu, questu hè u schedariu chì aghju avutu:
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
Lanciamu a custruzione, verificate chì i nostri cambiamenti / schedari sò nantu à BitBucket.
* cum'è a pratica hà dimustratu, a stallazione di e chjave SSH hè facultativa. Ma, solu in casu, furniraghju un algoritmu per stabilisce una cunnessione via SSH quì sottu
Cunnessione via SSH
Prima avete bisognu di generà una chjave SSH. Parechji articuli sò stati scritti nantu à questu. Per esempiu, pudete vede
I chjavi generati sembranu cusì cusì:
listing A chjave secreta deve esse aghjuntu cum'è una variabile in GitLab. Per fà questu, andate à Settings> CI/CD> Environment Variables. Aghjunghjite TUTTI u cuntenutu di u schedariu in quale avete salvatu a chjave secreta. Chjamemu a variàbile SSH_PRIVATE_KEY.
* stu schedariu, à u cuntrariu di u schedariu di chjave publica, ùn avarà micca l'estensione
Grande, dopu avete bisognu di aghjunghje a chjave publica à BitBucket. Per fà questu, apre u repository è andate à Settings> Access Keys.
Quì avemu cliccà Add Key è inserisce u cuntenutu di u schedariu cù a chjave publica (file cù l'estensione .pub).
U prossimu passu hè di utilizà e chjave in gitlab-runner. Aduprate questi cumandamenti, ma rimpiazzà l'asterischi cù i vostri dati
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. Stallà AppCenter
Creemu una nova applicazione in AppCenter.
Specificate a lingua / piattaforma
Dopu, andate à a sezione di Custruzzione di l'applicazione appena creata. Quì avemu sceltu BitBucket è u repository creatu in u passu 1.
Grande, avà avemu bisognu di cunfigurà a custruzione. Per fà questu, truvate l'icona di l'ingranaggio
In principiu, tuttu hè intuitivu. Sceglite un prughjettu è cunfigurazione. Se necessariu, attivate u lanciu di teste dopu a custruzione. Cuminciaranu automaticamente.
In fondu, hè tuttu. Sembra simplice, ma, naturalmente, tuttu ùn andarà bè. Dunque, descriveraghju alcuni errori chì aghju scontru durante u travagliu:
'ssh-keygen' ùn hè micca ricunnisciutu cum'è un cumandamentu internu o esternu.
Ci hè ancu perchè u percorsu à ssh-keygen.exe ùn hè micca aghjuntu à e variabili di l'ambiente.
Ci hè duie opzioni: aghjunghje C: Program FilesGitusrbin à Variabili di l'ambiente (serà appiicatu dopu à rebooting a macchina), o lanciate a cunsola da questu repertoriu.
AppCenter cunnessu à u contu BitBucket sbagliatu?
Per risolve u prublema, avete bisognu di unlink u vostru contu BitBucket da AppCenter. Entramu in u contu BitBucket sbagliatu è andemu à u prufilu d'utilizatore.
Dopu, andate à Settings> Access Management> OAuth
Cliccate Revoca per unlink u vostru contu.
Dopu à questu, avete bisognu di log in cù u contu BitBucket necessariu.
* Comu ultimu risorsu, sguassate ancu a cache di u vostru navigatore.
Avà andemu à AppCenter. vai à a rùbbrica Build, cliccate Disconnect contu BitBucket
Quandu u vechju contu ùn hè micca ligatu, ligatemu novu AppCenter. Avà à u contu desideratu.
'eval' ùn hè micca ricunnisciutu cum'è un cumandamentu internu o esternu
Avemu aduprà invece di un cumandamentu
- eval $(ssh-agent -s)
Squadra:
- ssh-agent
In certi casi, duverete sia specificà u percorsu sanu à C: Program FilesGitusrbinssh-agent.exe, o aghjunghje sta strada à e variabili di u sistema in a macchina induve u corridore hè in esecuzione.
AppCenter Build prova di lancià una custruzione per un prughjettu da un repository bitBucket obsoleto
In u mo casu, u prublema hè ghjuntu perchè aghju travagliatu cù parechji cunti. Aghju decisu di sguassà a cache.
Source: www.habr.com