Hej, hej!
Jag skulle vilja dela med mig av mina erfarenheter av att sÀtta upp integrationen mellan GitLab och AppCenter via BitBucket.
Behovet av en sÄdan integration uppstod under installationen av automatisk start av UI-tester för ett plattformsoberoende projekt pÄ Xamarin. Detaljerad handledning nedan!
* Jag kommer att skriva en separat artikel om automatisering av UI-testning i plattformsoberoende förhÄllanden om allmÀnheten Àr intresserad.
Jag grÀvde bara upp ett liknande material . SÄ min artikel kanske kan hjÀlpa nÄgon.
UppgiftKonfigurera automatisk start av UI-tester pÄ AppCenter, eftersom vÄrt team anvÀnder GitLab som versionshanteringssystem.
problem Det visade sig att AppCenter inte integrerar direkt med GitLab. En av de lösningar som valdes var att kringgÄ det via BitBucket.
steg
1. Skapa ett tomt arkiv pÄ BitBucket
Jag ser inget behov av att beskriva detta mer i detalj :)
2. Konfigurera GitLab
Vi vill se till att nÀr vi pushar/sammanfogar till repositoryt sÄ laddas Àndringarna ocksÄ upp till BitBucket. För att göra detta, lÀgg till en runner (eller redigera den befintliga .gitlab-ci.yml-filen).
LÀgg först till kommandon i avsnittet before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"Sedan lÀgger vi till följande kommando i det önskade steget:
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitI mitt fall fick jag en fil som denna
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.gitVi startar bygget och kontrollerar att vÄra Àndringar/filer har placerats pÄ BitBucket.
* som praktiken har visat Àr det inte nödvÀndigt att konfigurera SSH-nycklar. Men, bara ifall att, jag kommer att ge algoritmen för att konfigurera en anslutning via SSH nedan.
Anslutning via SSH
Först mÄste du generera en SSH-nyckel. MÄnga artiklar har skrivits om detta. Till exempel kan du titta pÄ .
De genererade nycklarna ser ut ungefÀr sÄ hÀr:

NÀsta Den hemliga nyckeln behöver lÀggas till som en variabel pÄ GitLab. För att göra detta, gÄ till InstÀllningar > CI/CD > Miljövariabler. LÀgg till ALLT innehÄll i filen dÀr du sparade den hemliga nyckeln. LÄt oss anropa variabeln SSH_PRIVATE_KEY.
* Den hÀr filen, till skillnad frÄn filen med offentlig nyckel, kommer inte att ha nÄgon filÀndelse

Toppen, nu mÄste du lÀgga till den offentliga nyckeln till BitBucket. För att göra detta, öppna arkivet och gÄ till InstÀllningar > à tkomstnycklar.

HÀr klickar vi pÄ LÀgg till nyckel och klistrar in innehÄllet i filen med den publika nyckeln (fil med tillÀgget .pub).
NÀsta steg Àr att anvÀnda nycklarna i gitlab-runner. AnvÀnd dessa kommandon men ersÀtt asteriskerna med dina egna data
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 git@bitbucket.org
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*****.git3. Konfigurera AppCenter
Skapa en ny applikation i AppCenter.

Ange sprÄk/plattform

GĂ„ sedan till avsnittet Bygg i den nyskapade applikationen. VĂ€lj BitBucket och databasen som skapades i steg 1.
Toppen, nu mÄste vi sÀtta upp bygget. För att göra detta, leta upp kugghjulsikonen

I princip Àr allt intuitivt dÀr. Vi vÀljer projektet och konfigurationen. Om det behövs, aktivera körning av tester efter bygget. De kommer att starta automatiskt.
I grund och botten Àr det allt. Det lÄter enkelt, men naturligtvis kommer inte allt att gÄ smidigt. DÀrför kommer jag att beskriva nÄgra av de fel jag stötte pÄ under mitt arbete:
'ssh-keygen' kÀnns inte igen som ett internt eller externt kommando.
Det intrÀffar ocksÄ eftersom sökvÀgen till ssh-keygen.exe inte lÀggs till i miljövariablerna.
Det finns tvÄ alternativ: lÀgg till C:Program FilesGitusrbin till miljövariablerna (kommer att tillÀmpas efter omstart av maskinen), eller kör konsolen frÄn den hÀr katalogen.
AppCenter ansluten till fel BitBucket-konto?
För att lösa problemet mÄste du koppla bort ditt BitBucket-konto frÄn AppCenter. Vi gÄr till fel BitBucket-konto, gÄr till anvÀndarprofilen.

GÄ sedan till InstÀllningar > à tkomsthantering > OAuth

Klicka pÄ à terkalla för att ta bort lÀnken till ditt konto.

Efter det mÄste du logga in med önskat BitBucket-konto
* Som en sista utvÀg, rensa Àven webblÀsarens cache
Nu gÄr vi till AppCenter. GÄ till avsnittet Bygg, klicka pÄ Koppla bort BitBucket-konto

NÀr det gamla kontot har kopplats bort, lÀnka AppCenter igen. Nu till det konto som krÀvs.
'eval' kÀnns inte igen som ett internt eller externt kommando
Vi anvÀnder istÀllet för kommandot
- eval $(ssh-agent -s)Team:
- ssh-agentI vissa fall mÄste du antingen ange den fullstÀndiga sökvÀgen till C:Program FilesGitusrbinssh-agent.exe, eller lÀgga till den hÀr sökvÀgen till systemvariablerna pÄ den maskin dÀr programmet körs.
AppCenter Build försöker köra en build för ett projekt frÄn ett förÄldrat bitBucket-arkiv
I mitt fall uppstod problemet eftersom jag arbetade med flera konton. Jag bestÀmde mig för att rensa cachen.
KĂ€lla: will.com
