AppCenter болон GitLab интеграцчилал

Трям, сайн уу!

Би BitBucket-ээр дамжуулан GitLab болон AppCenter-ийн интеграцчлалыг тохируулах туршлагаасаа ярихыг хүсч байна.

Ийм нэгтгэх хэрэгцээ нь Xamarin дээр платформ хоорондын төслийн UI тестийг автоматаар эхлүүлэх үед үүссэн. Зүссэн доор дэлгэрэнгүй заавар!

* Олон нийт сонирхож байвал платформ хоорондын нөхцөлд UI тестийг автоматжуулах талаар би тусдаа нийтлэл гаргах болно.

Би нэг л ийм материалыг ухсан нийтлэл. Тиймээс миний нийтлэл хэн нэгэнд тусалж магадгүй юм.

Зорилго: Манай баг GitLab-ийг хувилбарын хяналтын систем болгон ашигладаг тул AppCenter дээр UI тестийг автоматаар эхлүүлэхийг тохируулна уу.

асуудал 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 дээр хувьсагч болгон нэмэх шаардлагатай. Үүнийг хийхийн тулд Settings > CI/CD > Environment Variables хэсэгт очно уу. Нууц түлхүүрээ хадгалсан файлын БҮХ агуулгыг нэмнэ үү. 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 интеграцчилал

Дараа нь шинээр үүсгэсэн програмын Build хэсэг рүү очно уу. Тэнд бид 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 руу орцгооё. Build хэсэг рүү очоод BitBucket бүртгэлийг салгах дээр дарна уу

AppCenter болон GitLab интеграцчилал

Хуучин акаунтыг салгах үед бид AppCenter-г дахин холбодог. Одоо хүссэн данс руугаа.

'eval' нь дотоод болон гадаад тушаал гэж хүлээн зөвшөөрөгдөөгүй

Бид үүнийг командын оронд ашигладаг

  - eval $(ssh-agent -s)

Баг:

  - ssh-agent

Зарим тохиолдолд та C:Program FilesGitusrbinssh-agent.exe руу бүрэн замыг зааж өгөх эсвэл гүйгч ажиллаж байгаа машин дээрх системийн хувьсагчдад энэ замыг нэмэх шаардлагатай болно.

AppCenter Build нь хуучирсан bitBucket репозитороос төслийн бүтээцийг эхлүүлэхийг оролдож байна

Миний хувьд олон данстай ажиллаж байсан учраас асуудал үүссэн. Би кэшийг цэвэрлэхээр шийдсэн.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх