AppCenter och GitLab-integration

Tryam, hej!

Jag skulle vilja prata om min erfarenhet av att sätta upp GitLab och AppCenter integration via BitBucket.

Behovet av sådan integration uppstod när man satte upp automatisk lansering av UI-tester för ett plattformsoberoende projekt på Xamarin. Detaljerad tutorial under snittet!

* Jag kommer att göra en separat artikel om att automatisera UI-testning i plattformsoberoende förhållanden om allmänheten är intresserad.

Jag grävde bara fram ett sådant material Artikel. Därför kan min artikel hjälpa någon.

Uppgift: Konfigurera automatisk lansering av UI-tester på AppCenter, med tanke på att vårt team använder GitLab som ett versionskontrollsystem.

problem Det visade sig att AppCenter inte integrerar direkt med GitLab. Bypass via BitBucket valdes som en av lösningarna.

steg

1. Skapa ett tomt arkiv på BitBucket

Jag ser inte behovet av att beskriva detta mer detaljerat :)

2. Konfigurera GitLab

Vi behöver att ändringar också laddas upp till BitBucket när vi trycker/sammanfogar in i arkivet. För att göra detta, lägg till en löpare (eller redigera den befintliga .gitlab-ci.yml-filen).

Först lägger vi till kommandon i avsnittet before_scripts

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

Lägg sedan till följande kommando till önskat steg:

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

I mitt fall är det här filen jag fick:

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, kontrollerar att våra ändringar/filer finns på BitBucket.
* som praxis har visat är inställning av SSH-nycklar valfritt. Men för säkerhets skull kommer jag att tillhandahålla en algoritm för att ställa in en anslutning via SSH nedan

Anslutning via SSH

Först måste du skapa en SSH-nyckel. Många artiklar har skrivits om detta. Du kan till exempel titta här.
De genererade nycklarna ser ut ungefär så här:
AppCenter och GitLab-integration

Nästa Den hemliga nyckeln måste läggas till som en variabel till 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 kalla variabeln SSH_PRIVATE_KEY.
* denna fil, till skillnad från den offentliga nyckelfilen, kommer inte att ha filtillägget
AppCenter och GitLab-integration

Bra, härnäst måste du lägga till den publika nyckeln till BitBucket. För att göra detta, öppna förvaret och gå till Inställningar > Åtkomstnycklar.

AppCenter och GitLab-integration

Här klickar vi på Lägg till nyckel och infogar innehållet i filen med den publika nyckeln (fil med filtillägget .pub).

Nästa steg är att använda nycklarna i gitlab-runner. Använd dessa kommandon, men ersätt asteriskerna med dina uppgifter

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. Konfigurera AppCenter

Vi skapar en ny applikation på AppCenter.

AppCenter och GitLab-integration

Ange språk/plattform

AppCenter och GitLab-integration

Gå sedan till avsnittet Bygg i det nyskapade programmet. Där väljer vi BitBucket och arkivet som skapades i steg 1.

Bra, nu måste vi konfigurera bygget. För att göra detta, hitta kugghjulsikonen

AppCenter och GitLab-integration

I princip är allt där intuitivt. Välj ett projekt och konfiguration. Aktivera vid behov start av tester efter bygget. De kommer att starta automatiskt.

I grund och botten är det allt. Det låter enkelt, men naturligtvis kommer allt inte att gå smidigt. Därför kommer jag att beskriva några fel som jag stötte på när jag arbetade:

'ssh-keygen' känns inte igen som ett internt eller externt kommando.

Det uppstår 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övariabler (kommer att tillämpas efter omstart av maskinen), eller starta konsolen från den här katalogen.

AppCenter ansluten till fel BitBucket-konto?

För att lösa problemet måste du ta bort länken till ditt BitBucket-konto från AppCenter. Vi loggar in på fel BitBucket-konto och 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 detta måste du logga in med det nödvändiga BitBucket-kontot.
* Som en sista utväg, rensa även webbläsarens cache.

Låt oss nu gå till AppCenter. gå till avsnittet Bygg, klicka på Koppla från BitBucket-konto

AppCenter och GitLab-integration

När det gamla kontot är bortkopplat länkar vi AppCenter igen. Nu till önskat konto.

'eval' känns inte igen som ett internt eller externt kommando

Vi använder det istället för ett kommando

  - 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 denna sökväg till systemvariablerna på maskinen där löparen körs

AppCenter Build försöker starta en build för ett projekt från ett föråldrat bitBucket-förråd

I mitt fall uppstod problemet eftersom jag arbetade med flera konton. Jag bestämde mig för att rensa cachen.

Källa: will.com

Lägg en kommentar