Интегратсияи AppCenter ва GitLab

Трям, салом!

Ман мехоҳам дар бораи таҷрибаи худ дар танзими ҳамгироии GitLab ва AppCenter тавассути BitBucket сӯҳбат кунам.

Зарурати чунин ҳамгироӣ ҳангоми таъсиси автоматии санҷишҳои UI барои лоиҳаи кросс-платформа дар Xamarin ба миён омад. Омӯзиши муфассал дар зер буриш!

* Ман мақолаи алоҳида дар бораи автоматикунонии санҷиши UI дар шароити кросс-платформа, агар ҷомеа таваҷҷӯҳ дошта бошад.

Ман танҳо як чунин маводро кофта будам мақола. Аз ин рӯ, мақолаи ман метавонад ба касе кӯмак кунад.

Мақсад: Оғози автоматии санҷишҳои UI дар 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 ба тағирёбандаҳои муҳити зист (баъди аз нав боркунии мошин татбиқ карда мешавад) ё консолро аз ин директория оғоз кунед.

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 оғоз кунад

Дар ҳолати ман, мушкилот аз он сабаб ба миён омад, ки ман бо ҳисобҳои сершумор кор мекардам. Ман қарор додам, ки кэшро тоза кунам.

Манбаъ: will.com

Илова Эзоҳ