Integrazione di AppCenter è GitLab

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 articulu. Dunque, u mo articulu pò aiutà à qualchissia.

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 ccà.
I chjavi generati sembranu cusì cusì:
Integrazione di AppCenter è GitLab

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
Integrazione di AppCenter è GitLab

Grande, dopu avete bisognu di aghjunghje a chjave publica à BitBucket. Per fà questu, apre u repository è andate à Settings> Access Keys.

Integrazione di AppCenter è GitLab

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.

Integrazione di AppCenter è GitLab

Specificate a lingua / piattaforma

Integrazione di AppCenter è GitLab

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

Integrazione di AppCenter è GitLab

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.

Integrazione di AppCenter è GitLab

Dopu, andate à Settings> Access Management> OAuth

Integrazione di AppCenter è GitLab

Cliccate Revoca per unlink u vostru contu.

Integrazione di AppCenter è GitLab

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

Integrazione di AppCenter è GitLab

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

Add a comment