Tryame, ahoj!
Chtěl bych mluvit o svých zkušenostech s nastavením integrace GitLab a AppCenter přes BitBucket.
Potřeba takové integrace vyvstala při nastavování automatického spouštění testů uživatelského rozhraní pro projekt napříč platformami na Xamarin. Podrobný návod pod střihem!
* Pokud bude mít veřejnost zájem, udělám samostatný článek o automatizaci testování uživatelského rozhraní v podmínkách napříč platformami.
Vykopal jsem pouze jeden takový materiál
Úkol: Nastavte automatické spouštění testů uživatelského rozhraní na AppCenter, protože náš tým používá GitLab jako systém správy verzí.
problém Ukázalo se, že AppCenter se neintegruje přímo s GitLabem. Jako jedno z řešení bylo zvoleno Bypass přes BitBucket.
Шаги
1. Vytvořte prázdné úložiště na BitBucket
Nevidím potřebu to blíže popisovat :)
2. Nastavení GitLabu
Potřebujeme, aby při vkládání/slučování do úložiště byly změny nahrány také do BitBucket. Chcete-li to provést, přidejte běžec (nebo upravte stávající soubor .gitlab-ci.yml).
Nejprve přidáme příkazy do sekce before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"
Poté přidejte následující příkaz do požadované fáze:
- git push --mirror https://username:[email protected]/username/projectname.git
V mém případě je to soubor, který jsem 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 sestavení, zkontrolujeme, zda jsou naše změny/soubory na BitBucket.
* jak praxe ukázala, nastavení SSH klíčů je volitelné. Ale pro případ, níže poskytnu algoritmus pro nastavení připojení přes SSH
Připojení přes SSH
Nejprve je potřeba vygenerovat SSH klíč. O tom bylo napsáno mnoho článků. Můžete se například podívat
Vygenerované klíče vypadají asi takto:
Další Tajný klíč je třeba přidat jako proměnnou na GitLab. Chcete-li to provést, přejděte do Nastavení > CI/CD > Proměnné prostředí. Přidejte VŠECHNY obsah souboru, do kterého jste uložili tajný klíč. Zavoláme proměnnou SSH_PRIVATE_KEY.
* tento soubor, na rozdíl od souboru veřejného klíče, nebude mít příponu
Skvělé, dále musíte přidat veřejný klíč do BitBucket. Chcete-li to provést, otevřete úložiště a přejděte do Nastavení > Přístupové klíče.
Zde klikneme na Přidat klíč a vložíme obsah souboru s veřejným klíčem (soubor s příponou .pub).
Dalším krokem je použití kláves v gitlab-runner. Použijte tyto příkazy, ale nahraďte hvězdičky svými podrobnostmi
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. Nastavení AppCenter
Vytváříme novou aplikaci na AppCenter.
Zadejte jazyk/platformu
Dále přejděte do sekce Build nově vytvořené aplikace. Tam vybereme BitBucket a úložiště vytvořené v kroku 1.
Skvělé, teď musíme nakonfigurovat sestavení. Chcete-li to provést, najděte ikonu ozubeného kola
V zásadě je vše intuitivní. Vyberte projekt a konfiguraci. V případě potřeby povolte spuštění testů po sestavení. Spustí se automaticky.
V podstatě to je vše. Zní to jednoduše, ale vše přirozeně nepůjde hladce. Proto popíšu některé chyby, na které jsem při práci narazil:
'ssh-keygen' není rozpoznán jako interní nebo externí příkaz.
K tomu také dochází, protože cesta k ssh-keygen.exe není přidána do proměnných prostředí.
Existují dvě možnosti: přidat C:Program FilesGitusrbin do Environment Variables (bude aplikováno po restartování počítače), nebo spustit konzolu z tohoto adresáře.
AppCenter je připojen k nesprávnému účtu BitBucket?
Chcete-li problém vyřešit, musíte odpojit svůj účet BitBucket od AppCenter. Přihlásíme se do nesprávného účtu BitBucket a přejdeme do uživatelského profilu.
Dále přejděte do Nastavení > Správa přístupu > OAuth
Kliknutím na Odvolat odpojíte svůj účet.
Poté se musíte přihlásit pomocí požadovaného účtu BitBucket.
* Jako poslední možnost také vymažte mezipaměť prohlížeče.
Nyní pojďme do AppCenter. přejděte do části Sestavit, klikněte na Odpojit účet BitBucket
Když je starý účet odpojen, propojíme AppCenter znovu. Nyní k požadovanému účtu.
'eval' není rozpoznáno jako interní nebo externí příkaz
Používáme ho místo příkazu
- eval $(ssh-agent -s)
Tým:
- ssh-agent
V některých případech budete muset buď zadat úplnou cestu k C:Program FilesGitusrbinssh-agent.exe, nebo přidat tuto cestu k systémovým proměnným na počítači, kde běží běžec.
AppCenter Build se pokouší spustit sestavení projektu ze zastaralého úložiště bitBucket
V mém případě problém vznikl, protože jsem pracoval s několika účty. Rozhodl jsem se vymazat mezipaměť.
Zdroj: www.habr.com