AppCenter va GitLab integratsiyasi

Tryam, salom!

BitBucket orqali GitLab va AppCenter integratsiyasini o'rnatishdagi tajribam haqida gapirmoqchiman.

Bunday integratsiya zarurati Xamarin-da kross-platforma loyihasi uchun UI testlarini avtomatik ishga tushirishni o'rnatishda paydo bo'ldi. Kesish ostida batafsil o'quv qo'llanma!

* Agar jamoatchilik manfaatdor bo'lsa, men platformalararo sharoitlarda UI testini avtomatlashtirish haqida alohida maqola tayyorlayman.

Men faqat bitta bunday materialni qazib oldim maqola. Shuning uchun mening maqolam kimgadir yordam berishi mumkin.

Maqsad: Bizning jamoamiz GitLab-dan versiyalarni boshqarish tizimi sifatida foydalanishini hisobga olib, AppCenter-da UI testlarini avtomatik ishga tushiring.

muammo Ma'lum bo'lishicha, AppCenter GitLab bilan to'g'ridan-to'g'ri integratsiyalashmaydi. BitBucket orqali aylanib o'tish yechimlardan biri sifatida tanlandi.

Qadamlar

1. BitBucket-da bo'sh ombor yarating

Buni batafsil tasvirlashga hojat yo'q :)

2. GitLab dasturini sozlash

Bizga omborga surish/birlashishda o'zgarishlar BitBucket-ga ham yuklanishi kerak. Buning uchun yuguruvchi qo'shing (yoki mavjud .gitlab-ci.yml faylini tahrirlang).

Birinchidan, prior_scripts bo'limiga buyruqlar qo'shamiz

 - git config --global user.email "user@email"
 - git config --global user.name "username"

Keyin kerakli bosqichga quyidagi buyruqni qo'shing:

- git push --mirror https://username:[email protected]/username/projectname.git

Mening holimda bu men olgan fayl:

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

Qurilishni boshlaymiz, o'zgartirishlarimiz/fayllarimiz BitBucket-da ekanligini tekshiring.
* Amaliyot shuni ko'rsatadiki, SSH kalitlarini sozlash ixtiyoriydir. Ammo, har qanday holatda, men quyida SSH orqali ulanishni o'rnatish algoritmini taqdim etaman

SSH orqali ulanish

Avval siz SSH kalitini yaratishingiz kerak. Bu haqda ko'plab maqolalar yozilgan. Masalan, siz qarashingiz mumkin shu yerda.
Yaratilgan kalitlar quyidagicha ko'rinadi:
AppCenter va GitLab integratsiyasi

yanada Yashirin kalit GitLab-ga o'zgaruvchi sifatida qo'shilishi kerak. Buni amalga oshirish uchun Sozlamalar > CI/CD > Atrof-muhit o'zgaruvchilari-ga o'ting. Maxfiy kalit saqlangan faylning HAMMA mazmunini qo'shing. SSH_PRIVATE_KEY o'zgaruvchisini chaqiramiz.
* bu fayl, ochiq kalit faylidan farqli o'laroq, kengaytmaga ega bo'lmaydi
AppCenter va GitLab integratsiyasi

Ajoyib, keyin BitBucket-ga umumiy kalitni qo'shishingiz kerak. Buni amalga oshirish uchun omborni oching va Sozlamalar > Kirish kalitlari-ga o'ting.

AppCenter va GitLab integratsiyasi

Bu erda biz "Kalit qo'shish" tugmasini bosamiz va umumiy kalit bilan fayl tarkibini (.pub kengaytmali fayl) kiritamiz.

Keyingi qadam gitlab-runner-da kalitlardan foydalanishdir. Ushbu buyruqlardan foydalaning, lekin yulduzchalarni tafsilotlaringiz bilan almashtiring

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 dasturini sozlash

Biz AppCenter-da yangi dastur yaratamiz.

AppCenter va GitLab integratsiyasi

Tilni/platformani belgilang

AppCenter va GitLab integratsiyasi

Keyin yangi yaratilgan ilovaning Build bo'limiga o'ting. U erda biz BitBucket va 1-bosqichda yaratilgan omborni tanlaymiz.

Ajoyib, endi qurilishni sozlashimiz kerak. Buning uchun tishli belgini toping

AppCenter va GitLab integratsiyasi

Aslida, u erda hamma narsa intuitivdir. Loyiha va konfiguratsiyani tanlang. Agar kerak bo'lsa, qurishdan keyin testlarni ishga tushirishni yoqing. Ular avtomatik ravishda boshlanadi.

Umuman olganda, hammasi shu. Bu oddiy tuyuladi, lekin, tabiiyki, hamma narsa muammosiz ketmaydi. Shuning uchun men ish paytida duch kelgan ba'zi xatolarni tasvirlab beraman:

'ssh-keygen' ichki yoki tashqi buyruq sifatida tan olinmaydi.

Bu, shuningdek, ssh-keygen.exe ga yo'l atrof-muhit o'zgaruvchilariga qo'shilmaganligi sababli yuzaga keladi.
Ikkita variant mavjud: C:Program FilesGitusrbin-ni Environment Variables-ga qo'shing (mashinani qayta ishga tushirgandan so'ng qo'llaniladi) yoki konsolni ushbu katalogdan ishga tushiring.

AppCenter noto'g'ri BitBucket hisobiga ulanganmi?

Muammoni hal qilish uchun BitBucket hisobingizni AppCenter-dan uzishingiz kerak. Biz noto'g'ri BitBucket hisobiga kiramiz va foydalanuvchi profiliga o'tamiz.

AppCenter va GitLab integratsiyasi

Keyin Sozlamalar > Kirish boshqaruvi > OAuth-ga o'ting

AppCenter va GitLab integratsiyasi

Hisobingizni uzish uchun Bekor qilish tugmasini bosing.

AppCenter va GitLab integratsiyasi

Shundan so'ng, kerakli BitBucket hisobi bilan tizimga kirishingiz kerak.
* Oxirgi chora sifatida brauzer keshini tozalang.

Endi AppCenter-ga o'tamiz. Build bo'limiga o'ting, BitBucket hisobini o'chirish-ni bosing

AppCenter va GitLab integratsiyasi

Eski hisob uzilganda, biz AppCenter-ni yana bog'laymiz. Endi kerakli hisobga.

"baholash" ichki yoki tashqi buyruq sifatida tan olinmaydi

Biz uni buyruq o'rniga ishlatamiz

  - eval $(ssh-agent -s)

Jamoa:

  - ssh-agent

Ba'zi hollarda siz C: Program FilesGitusrbinssh-agent.exe ga to'liq yo'lni ko'rsatishingiz yoki bu yo'lni yuguruvchi ishlayotgan mashinadagi tizim o'zgaruvchilariga qo'shishingiz kerak bo'ladi.

AppCenter Build eskirgan bitBucket omboridan loyiha uchun tuzilmani ishga tushirishga harakat qilmoqda

Mening vaziyatimda muammo bir nechta hisoblar bilan ishlaganim sababli paydo bo'ldi. Men keshni tozalashga qaror qildim.

Manba: www.habr.com

a Izoh qo'shish