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
Ú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ť
Vygenerované kľúče vyzerajú asi takto:
Ď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
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.
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.
Zadajte jazyk/platformu
Ď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
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.
Ďalej prejdite do časti Nastavenia > Správa prístupu > OAuth
Kliknutím na tlačidlo Odvolať odpojíte svoj účet.
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
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