Integrace AppCenter a GitLab

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 Článek. Proto můj článek může někomu pomoci.

Ú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 zde.
Vygenerované klíče vypadají asi takto:
Integrace AppCenter a GitLab

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
Integrace AppCenter a GitLab

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.

Integrace AppCenter a GitLab

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.

Integrace AppCenter a GitLab

Zadejte jazyk/platformu

Integrace AppCenter a GitLab

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

Integrace AppCenter a GitLab

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.

Integrace AppCenter a GitLab

Dále přejděte do Nastavení > Správa přístupu > OAuth

Integrace AppCenter a GitLab

Kliknutím na Odvolat odpojíte svůj účet.

Integrace AppCenter a GitLab

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

Integrace AppCenter a GitLab

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

Přidat komentář