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

Тријам, здраво!

Би сакал да зборувам за моето искуство во поставувањето интеграција на GitLab и AppCenter преку BitBucket.

Потребата за таква интеграција се појави при поставувањето на автоматско лансирање на тестови за кориснички интерфејс за проект меѓу платформи на Xamarin. Детален туторијал под сечењето!

* Ако јавноста е заинтересирана, ќе направам посебна статија за автоматизирање на тестирањето на интерфејсот во услови на меѓуплатформи.

Ископав само еден таков материјал статью. Затоа, мојата статија може да помогне некому.

Задача: Поставете автоматско стартување на тестовите за интерфејс на AppCenter, имајќи предвид дека нашиот тим користи GitLab како систем за контрола на верзии.

проблем Се испостави дека AppCenter не се интегрира директно со GitLab. Како едно од решенијата беше избрано бајпас преку BitBucket.

Шаги

1. Направете празно складиште на BitBucket

Не гледам потреба да го опишам ова подетално :)

2. Поставување на GitLab

Потребно ни е дека при туркање/спојување во складиштето, промените се поставуваат и на BitBucket. За да го направите ова, додадете тркач (или уредете ја постоечката датотека .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

Овде кликнуваме Додај клуч и ја вметнуваме содржината на датотеката со јавниот клуч (датотека со наставката .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

Следно, одете во делот Изградба на новосоздадената апликација. Таму избираме BitBucket и складиштето создадено во чекор 1.

Одлично, сега треба да ја конфигурираме изградбата. За да го направите ова, пронајдете ја иконата за менувачот

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

Во принцип, сè е интуитивно. Изберете проект и конфигурација. Доколку е потребно, овозможете лансирање на тестови по изградбата. Тие ќе започнат автоматски.

Во суштина, тоа е сè. Звучи едноставно, но, нормално, сè нема да оди мазно. Затоа, ќе опишам некои грешки што ги наидов додека работев:

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

Исто така, се појавува затоа што патеката до ssh-keygen.exe не се додава во променливите на околината.
Има две опции: додадете C:Program FilesGitusrbin во Environment Variables (ќе се применуваат по рестартирање на машината) или стартувајте ја конзолата од овој директориум.

AppCenter е поврзан со погрешна сметка на BitBucket?

За да го решите проблемот, треба да ја исклучите вашата сметка на BitBucket од AppCenter. Се најавуваме на погрешна сметка на BitBucket и одиме на корисничкиот профил.

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

Следно, одете во Поставки > Управување со пристап > OAuth

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

Кликнете Revoke за да ја прекинете врската со вашата сметка.

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

По ова, треба да се најавите со потребната сметка на BitBucket.
* Како последно средство, исчистете го и кешот на вашиот прелистувач.

Сега да одиме во AppCenter. одете во делот Изградба, кликнете Исклучи ја сметката на BitBucket

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

Кога старата сметка е прекината, повторно го поврзуваме AppCenter. Сега на саканата сметка.

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

Го користиме наместо команда

  - eval $(ssh-agent -s)

Тим:

  - ssh-agent

Во некои случаи, ќе треба или да ја наведете целосната патека до C:Program FilesGitusrbinssh-agent.exe, или да ја додадете оваа патека на системските променливи на машината каде што работи тркачот

AppCenter Build се обидува да започне градба за проект од застарено складиште bitBucket

Во мојот случај, проблемот настана затоа што работев со неколку сметки. Решив да го исчистам кешот.

Извор: www.habr.com

Додадете коментар