AppCenter және GitLab интеграциясы

Трям, сәлем!

Мен BitBucket арқылы GitLab және AppCenter интеграциясын орнатудағы тәжірибем туралы айтқым келеді.

Мұндай интеграция қажеттілігі Xamarin платформасындағы кросс-платформалық жоба үшін UI сынақтарын автоматты түрде іске қосуды орнату кезінде пайда болды. Кескінді төменде егжей-тегжейлі оқулық!

* Егер жұртшылық қызығушылық танытса, мен кросс-платформа жағдайында UI тестілеуін автоматтандыру туралы жеке мақала жасаймын.

Мен осындай бір материалды ғана қазып алдым мақала. Сондықтан менің мақалам біреуге көмектесуі мүмкін.

Мақсаты: Біздің топ GitLab нұсқасын басқару жүйесі ретінде пайдаланатынын ескере отырып, AppCenter жүйесінде UI сынақтарын автоматты түрде іске қосуды орнатыңыз.

проблема AppCenter GitLab-пен тікелей интеграцияланбайтыны белгілі болды. Шешімдердің бірі ретінде BitBucket арқылы айналып өту таңдалды.

Қадамдар

1. BitBucket ішінде бос репозиторий жасаңыз

Мен мұны егжей-тегжейлі сипаттаудың қажеті жоқ :)

2. GitLab орнату

Репозиторийге итеру/біріктіру кезінде өзгерістер BitBucket-ке де жүктелуі керек. Ол үшін жүгіргішті қосыңыз (немесе бар .gitlab-ci.yml файлын өңдеңіз).

Алдымен pre_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 интеграциясы

Есептік жазбаңыздың байланысын жою үшін Жою түймесін басыңыз.

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

пікір қалдыру