Интеграция на AppCenter и GitLab

Триам, здравей!

Бих искал да говоря за моя опит в настройването на интеграция на GitLab и AppCenter чрез BitBucket.

Необходимостта от такава интеграция възникна при настройването на автоматично стартиране на UI тестове за крос-платформен проект на Xamarin. Подробен урок под разреза!

* Ще направя отделна статия за автоматизирането на тестването на потребителския интерфейс в условия на различни платформи, ако обществеността се интересува.

Изрових само един такъв материал Статия. Следователно моята статия може да помогне на някого.

Задача: Настройте автоматично стартиране на UI тестове в AppCenter, като се има предвид, че нашият екип използва GitLab като система за контрол на версиите.

проблем Оказа се, че AppCenter не се интегрира директно с GitLab. Като едно от решенията беше избран байпас чрез BitBucket.

Шаги

1. Създайте празно хранилище в BitBucket

Не виждам нужда да го описвам по-подробно :)

2. Настройване на GitLab

Имаме нужда, когато натискаме/сливаме в хранилището, промените също да се качват в BitBucket. За да направите това, добавете runner (или редактирайте съществуващия файл .gitlab-ci.yml).

Първо добавяме команди към раздела before_scripts

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

След това добавете следната команда към желания етап:

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

В моя случай това е файлът, който получих:

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

Стартираме изграждането, проверяваме дали нашите промени/файлове са в BitBucket.
* както показа практиката, настройването на SSH ключове не е задължително. Но за всеки случай ще предоставя алгоритъм за настройка на връзка чрез SSH по-долу

Връзка чрез SSH

Първо трябва да генерирате SSH ключ. За това са изписани много статии. Например, можете да погледнете тук.
Генерираните ключове изглеждат по следния начин:
Интеграция на AppCenter и GitLab

Още Тайният ключ трябва да се добави като променлива в GitLab. За да направите това, отидете на Настройки > CI/CD > Променливи на средата. Добавете ЦЯЛОТО съдържание на файла, в който сте записали секретния ключ. Нека извикаме променливата SSH_PRIVATE_KEY.
* този файл, за разлика от файла с публичен ключ, няма да има разширение
Интеграция на AppCenter и GitLab

Страхотно, следващото трябва да добавите публичния ключ към BitBucket. За да направите това, отворете хранилището и отидете на Настройки > Ключове за достъп.

Интеграция на AppCenter и GitLab

Тук кликваме Add Key и вмъкваме съдържанието на файла с публичния ключ (файл с разширение .pub).

Следващата стъпка е да използвате ключовете в gitlab-runner. Използвайте тези команди, но заменете звездичките с вашите данни

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. Настройка на AppCenter

Създаваме ново приложение в AppCenter.

Интеграция на AppCenter и GitLab

Посочете езика/платформата

Интеграция на AppCenter и GitLab

След това отидете в секцията Build на новосъздаденото приложение. Там избираме BitBucket и хранилището, създадено в стъпка 1.

Страхотно, сега трябва да конфигурираме компилацията. За да направите това, намерете иконата на зъбно колело

Интеграция на AppCenter и GitLab

По принцип всичко там е интуитивно. Изберете проект и конфигурация. Ако е необходимо, активирайте стартирането на тестове след изграждането. Те ще стартират автоматично.

По принцип това е всичко. Звучи просто, но, естествено, всичко няма да върви гладко. Затова ще опиша някои грешки, които срещнах по време на работа:

'ssh-keygen' не се разпознава като вътрешна или външна команда.

Също така възниква, защото пътят до ssh-keygen.exe не е добавен към променливите на средата.
Има две опции: добавете C:Program FilesGitusrbin към променливите на средата (ще се приложи след рестартиране на машината) или стартирайте конзолата от тази директория.

AppCenter е свързан с грешен BitBucket акаунт?

За да разрешите проблема, трябва да прекратите връзката на вашия BitBucket акаунт с AppCenter. Влизаме в грешния акаунт в BitBucket и отиваме в потребителския профил.

Интеграция на AppCenter и GitLab

След това отидете на Настройки> Управление на достъпа> OAuth

Интеграция на AppCenter и GitLab

Щракнете върху Отмяна, за да прекратите връзката на вашия акаунт.

Интеграция на AppCenter и GitLab

След това трябва да влезете с необходимия BitBucket акаунт.
* В краен случай изчистете и кеша на браузъра си.

Сега да отидем в AppCenter. отидете в секцията Build, щракнете върху Disconnect BitBucket акаунт

Интеграция на AppCenter и GitLab

Когато старият акаунт бъде прекратен, свързваме AppCenter отново. Сега към желания акаунт.

'eval' не се разпознава като вътрешна или външна команда

Използваме го вместо команда

  - eval $(ssh-agent -s)

екип:

  - ssh-agent

В някои случаи ще трябва или да посочите пълния път до C:Program FilesGitusrbinssh-agent.exe, или да добавите този път към системните променливи на машината, на която работи програмата

AppCenter Build се опитва да стартира компилация за проект от остаряло bitBucket хранилище

В моя случай проблемът възникна, защото работех с множество акаунти. Реших да изчистя кеша.

Източник: www.habr.com

Добавяне на нов коментар