Трям, сәлем!
Мен 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 кілтін жасау керек. Бұл туралы көптеген мақалалар жазылды. Мысалы, қарауға болады
Жасалған кілттер келесідей көрінеді:
одан әрі Құпия кілт 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 тармағына өтіңіз
Есептік жазбаңыздың байланысын жою үшін Жою түймесін басыңыз.
Осыдан кейін сізге қажетті BitBucket тіркелгісімен кіру керек.
* Соңғы шара ретінде шолғыш кэшін де тазалаңыз.
Енді AppCenter-ге барайық. Құрастыру бөліміне өтіп, BitBucket тіркелгісін ажырату түймесін басыңыз
Ескі тіркелгі ажыратылғанда, біз AppCenter-ді қайтадан байланыстырамыз. Енді қалаған есептік жазбаға.
'eval' ішкі немесе сыртқы пәрмен ретінде танылмайды
Біз оны команданың орнына қолданамыз
- eval $(ssh-agent -s)
Команда:
- ssh-agent
Кейбір жағдайларда C:Program FilesGitusrbinssh-agent.exe файлына толық жолды көрсетуге немесе жүгіруші іске қосылған құрылғыдағы жүйелік айнымалыларға осы жолды қосуға тура келеді.
AppCenter Build ескірген bitBucket репозиторийінен жоба үшін құрастыруды іске қосуға тырысуда
Менің жағдайда мәселе бірнеше тіркелгілермен жұмыс істегендіктен туындады. Мен кэшті тазалауды шештім.
Ақпарат көзі: www.habr.com