Трям, сайн уу!
Би 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 түлхүүр үүсгэх хэрэгтэй. Энэ талаар олон нийтлэл бичсэн. Жишээлбэл, та харж болно
Үүсгэсэн түлхүүрүүд нь иймэрхүү харагдаж байна:
цаашид Нууц түлхүүр GitLab дээр хувьсагч болгон нэмэх шаардлагатай. Үүнийг хийхийн тулд Settings > CI/CD > Environment Variables хэсэгт очно уу. Нууц түлхүүрээ хадгалсан файлын БҮХ агуулгыг нэмнэ үү. 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 дээр шинэ програм үүсгэдэг.
Хэл/платформыг зааж өгнө үү
Дараа нь шинээр үүсгэсэн програмын Build хэсэг рүү очно уу. Тэнд бид BitBucket болон 1-р алхам дээр үүсгэсэн агуулахыг сонгоно.
Гайхалтай, одоо бид угсралтыг тохируулах хэрэгтэй. Үүнийг хийхийн тулд арааны дүрсийг олоорой
Зарчмын хувьд тэнд бүх зүйл зөн совинтой байдаг. Төсөл болон тохиргоог сонгоно уу. Шаардлагатай бол бүтээсний дараа ажиллаж байгаа туршилтуудыг идэвхжүүлнэ үү. Тэд автоматаар эхлэх болно.
Үндсэндээ энэ л байна. Энэ нь энгийн сонсогдож байгаа ч мэдээжийн хэрэг бүх зүйл жигд болохгүй. Тиймээс би ажиллах явцад гарсан зарим алдаануудыг тайлбарлах болно.
'ssh-keygen' нь дотоод болон гадаад тушаал гэж хүлээн зөвшөөрөгдөөгүй.
Энэ нь мөн ssh-keygen.exe руу очих замыг орчны хувьсагчдад нэмээгүйгээс үүсдэг.
Хоёр сонголт байна: C:Program FilesGitusrbin-г Environment Variables-д нэмэх (машиныг дахин ачаалсны дараа хэрэглэгдэх болно) эсвэл энэ лавлахаас консолыг ажиллуул.
AppCenter буруу BitBucket дансанд холбогдсон уу?
Асуудлыг шийдэхийн тулд та BitBucket бүртгэлээ AppCenter-ээс салгах хэрэгтэй. Бид буруу BitBucket данс руу нэвтэрч, хэрэглэгчийн профайл руу орно.
Дараа нь Тохиргоо > Хандалтын менежмент > OAuth руу очно уу
Бүртгэлээ салгахын тулд Цуцлах дээр дарна уу.
Үүний дараа та шаардлагатай BitBucket бүртгэлээр нэвтрэх шаардлагатай.
* Хамгийн сүүлчийн арга бол хөтчийнхөө кэшийг мөн цэвэрлэ.
Одоо AppCenter руу орцгооё. Build хэсэг рүү очоод BitBucket бүртгэлийг салгах дээр дарна уу
Хуучин акаунтыг салгах үед бид AppCenter-г дахин холбодог. Одоо хүссэн данс руугаа.
'eval' нь дотоод болон гадаад тушаал гэж хүлээн зөвшөөрөгдөөгүй
Бид үүнийг командын оронд ашигладаг
- eval $(ssh-agent -s)
Баг:
- ssh-agent
Зарим тохиолдолд та C:Program FilesGitusrbinssh-agent.exe руу бүрэн замыг зааж өгөх эсвэл гүйгч ажиллаж байгаа машин дээрх системийн хувьсагчдад энэ замыг нэмэх шаардлагатай болно.
AppCenter Build нь хуучирсан bitBucket репозитороос төслийн бүтээцийг эхлүүлэхийг оролдож байна
Миний хувьд олон данстай ажиллаж байсан учраас асуудал үүссэн. Би кэшийг цэвэрлэхээр шийдсэн.
Эх сурвалж: www.habr.com