Integrácia AppCenter a GitLab

Tryam, ahoj!

Chcel by som hovoriť o mojich skúsenostiach s nastavením integrácie GitLab a AppCenter cez BitBucket.

Potreba takejto integrácie vznikla pri nastavovaní automatického spúšťania testov používateľského rozhrania pre multiplatformový projekt na Xamarin. Podrobný návod pod strihom!

* Ak bude mať verejnosť záujem, urobím samostatný článok o automatizácii testovania používateľského rozhrania v podmienkach viacerých platforiem.

Vykopal som len jeden takýto materiál статью. Preto môj článok môže niekomu pomôcť.

Úloha: Nastavte automatické spúšťanie testov používateľského rozhrania v AppCenter, keďže náš tím používa GitLab ako systém na správu verzií.

problém Ukázalo sa, že AppCenter sa neintegruje priamo s GitLab. Ako jedno z riešení bolo zvolené bypass cez BitBucket.

Шаги

1. Vytvorte prázdne úložisko na BitBucket

Nevidím potrebu to bližšie popisovať :)

2. Nastavenie GitLabu

Potrebujeme, aby pri tlačení/zlúčení do úložiska boli zmeny nahrané aj do BitBucket. Ak to chcete urobiť, pridajte bežec (alebo upravte existujúci súbor .gitlab-ci.yml).

Najprv pridáme príkazy do sekcie before_scripts

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

Potom pridajte nasledujúci príkaz do požadovanej fázy:

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

V mojom prípade je to súbor, ktorý som dostal:

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

Spustíme zostavenie, skontrolujeme, či sú naše zmeny/súbory na BitBucket.
* ako prax ukázala, nastavenie kľúčov SSH je voliteľné. Ale pre každý prípad nižšie poskytnem algoritmus na nastavenie pripojenia cez SSH

Pripojenie cez SSH

Najprv musíte vygenerovať kľúč SSH. O tom bolo napísaných veľa článkov. Môžete sa napríklad pozrieť tu.
Vygenerované kľúče vyzerajú asi takto:
Integrácia AppCenter a GitLab

Ďalšie Tajný kľúč je potrebné pridať ako premennú do GitLabu. Ak to chcete urobiť, prejdite do časti Nastavenia > CI/CD > Premenné prostredia. Pridajte VŠETKÝ obsah súboru, do ktorého ste uložili tajný kľúč. Zavolajme premennú SSH_PRIVATE_KEY.
* tento súbor, na rozdiel od súboru verejného kľúča, nebude mať príponu
Integrácia AppCenter a GitLab

Skvelé, ďalej musíte pridať verejný kľúč do BitBucket. Ak to chcete urobiť, otvorte úložisko a prejdite do časti Nastavenia > Prístupové kľúče.

Integrácia AppCenter a GitLab

Tu klikneme na Pridať kľúč a vložíme obsah súboru s verejným kľúčom (súbor s príponou .pub).

Ďalším krokom je použitie klávesov v gitlab-runner. Použite tieto príkazy, ale nahraďte hviezdičky svojimi podrobnosťami

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

Vytvárame novú aplikáciu na AppCenter.

Integrácia AppCenter a GitLab

Zadajte jazyk/platformu

Integrácia AppCenter a GitLab

Ďalej prejdite do časti Vytvoriť novovytvorenej aplikácie. Tam vyberieme BitBucket a úložisko vytvorené v kroku 1.

Skvelé, teraz musíme nakonfigurovať zostavu. Ak to chcete urobiť, nájdite ikonu ozubeného kolieska

Integrácia AppCenter a GitLab

V princípe je tam všetko intuitívne. Vyberte projekt a konfiguráciu. V prípade potreby povoľte spustenie testov po zostavení. Spustia sa automaticky.

V podstate je to všetko. Znie to jednoducho, ale, prirodzene, všetko nepôjde hladko. Preto popíšem niektoré chyby, s ktorými som sa pri práci stretol:

'ssh-keygen' nie je rozpoznaný ako interný alebo externý príkaz.

Vyskytuje sa aj preto, že cesta k ssh-keygen.exe nie je pridaná do premenných prostredia.
Existujú dve možnosti: pridať C:Program FilesGitusrbin do Environment Variables (bude aplikované po reštarte počítača), alebo spustiť konzolu z tohto adresára.

AppCenter je pripojený k nesprávnemu účtu BitBucket?

Ak chcete problém vyriešiť, musíte odpojiť svoj účet BitBucket od AppCenter. Prihlásime sa do nesprávneho účtu BitBucket a prejdeme do používateľského profilu.

Integrácia AppCenter a GitLab

Ďalej prejdite do časti Nastavenia > Správa prístupu > OAuth

Integrácia AppCenter a GitLab

Kliknutím na tlačidlo Odvolať odpojíte svoj účet.

Integrácia AppCenter a GitLab

Potom sa musíte prihlásiť pomocou požadovaného účtu BitBucket.
* V krajnom prípade tiež vymažte vyrovnávaciu pamäť prehliadača.

Teraz poďme do AppCenter. prejdite do časti Vytvoriť, kliknite na položku Odpojiť účet BitBucket

Integrácia AppCenter a GitLab

Keď sa starý účet odpojí, znova prepojíme AppCenter. Teraz k požadovanému účtu.

„eval“ nie je rozpoznaný ako interný alebo externý príkaz

Používame ho namiesto príkazu

  - eval $(ssh-agent -s)

tím:

  - ssh-agent

V niektorých prípadoch budete musieť zadať úplnú cestu k súboru C:Program FilesGitusrbinssh-agent.exe alebo pridať túto cestu k systémovým premenným na počítači, na ktorom beží bežec.

AppCenter Build sa pokúša spustiť zostavenie projektu zo zastaraného úložiska bitBucket

V mojom prípade problém nastal, pretože som pracoval s viacerými účtami. Rozhodol som sa vymazať vyrovnávaciu pamäť.

Zdroj: hab.com

Pridať komentár