Тријам, здраво!
Би сакал да зборувам за моето искуство во поставувањето интеграција на 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 клуч. За ова се напишани многу статии. На пример, можете да погледнете
Генерираните клучеви изгледаат вака:
Понатаму Тајниот клуч треба да се додаде како променлива на GitLab. За да го направите ова, одете до Поставки > CI/CD > Променливи на животната средина. Додадете ја СИТЕ содржини на датотеката во која сте го зачувале тајниот клуч. Да ја наречеме променливата SSH_PRIVATE_KEY.
* оваа датотека, за разлика од датотеката со јавен клуч, нема да има наставка
Одлично, потоа треба да го додадете јавниот клуч на BitBucket. За да го направите ова, отворете го складиштето и одете до Поставки > Копчиња за пристап.
Овде кликнуваме Додај клуч и ја вметнуваме содржината на датотеката со јавниот клуч (датотека со наставката .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.
Наведете го јазикот/платформата
Следно, одете во делот Изградба на новосоздадената апликација. Таму избираме BitBucket и складиштето создадено во чекор 1.
Одлично, сега треба да ја конфигурираме изградбата. За да го направите ова, пронајдете ја иконата за менувачот
Во принцип, сè е интуитивно. Изберете проект и конфигурација. Доколку е потребно, овозможете лансирање на тестови по изградбата. Тие ќе започнат автоматски.
Во суштина, тоа е сè. Звучи едноставно, но, нормално, сè нема да оди мазно. Затоа, ќе опишам некои грешки што ги наидов додека работев:
„ssh-keygen“ не се препознава како внатрешна или надворешна команда.
Исто така, се појавува затоа што патеката до ssh-keygen.exe не се додава во променливите на околината.
Има две опции: додадете C:Program FilesGitusrbin во Environment Variables (ќе се применуваат по рестартирање на машината) или стартувајте ја конзолата од овој директориум.
AppCenter е поврзан со погрешна сметка на BitBucket?
За да го решите проблемот, треба да ја исклучите вашата сметка на BitBucket од AppCenter. Се најавуваме на погрешна сметка на BitBucket и одиме на корисничкиот профил.
Следно, одете во Поставки > Управување со пристап > OAuth
Кликнете Revoke за да ја прекинете врската со вашата сметка.
По ова, треба да се најавите со потребната сметка на BitBucket.
* Како последно средство, исчистете го и кешот на вашиот прелистувач.
Сега да одиме во AppCenter. одете во делот Изградба, кликнете Исклучи ја сметката на BitBucket
Кога старата сметка е прекината, повторно го поврзуваме AppCenter. Сега на саканата сметка.
„eval“ не се препознава како внатрешна или надворешна команда
Го користиме наместо команда
- eval $(ssh-agent -s)
Тим:
- ssh-agent
Во некои случаи, ќе треба или да ја наведете целосната патека до C:Program FilesGitusrbinssh-agent.exe, или да ја додадете оваа патека на системските променливи на машината каде што работи тркачот
AppCenter Build се обидува да започне градба за проект од застарено складиште bitBucket
Во мојот случај, проблемот настана затоа што работев со неколку сметки. Решив да го исчистам кешот.
Извор: www.habr.com