AppCenter och GitLab-integration

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 Artikel. 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.git

I 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.git

Vi 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Ä hÀr.
De genererade nycklarna ser ut ungefÀr sÄ hÀr:
AppCenter och GitLab-integration

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
AppCenter och GitLab-integration

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.

AppCenter och GitLab-integration

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/*****/*****.git

3. Konfigurera AppCenter

Skapa en ny applikation i AppCenter.

AppCenter och GitLab-integration

Ange sprÄk/plattform

AppCenter och GitLab-integration

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

AppCenter och GitLab-integration

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.

AppCenter och GitLab-integration

GĂ„ sedan till InstĂ€llningar > Åtkomsthantering > OAuth

AppCenter och GitLab-integration

Klicka pĂ„ Återkalla för att ta bort lĂ€nken till ditt konto.

AppCenter och GitLab-integration

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

AppCenter och GitLab-integration

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-agent

I 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

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster