Hei, god dag!
Jeg vil dele erfaringene mine med Ă„ sette opp integrasjonen mellom GitLab og AppCenter gjennom BitBucket.
Behovet for en slik integrasjon oppsto under oppsettet av automatisk kjÞring av UI-tester for et tverrplattformprosjekt pÄ Xamarin. Detaljert tutorial er under kat!
* Om automatisering av UI-testing i tverrplattformsetting vil jeg skrive en egen artikkel hvis publikum er interessert.
Jeg har kun funnet ett slikt materiale. . Derfor kan artikkelen min vĂŠre til hjelp for noen.
Oppgave: à sette opp automatisk kjÞring av UI-tester pÄ AppCenter nÄr teamet vÄrt bruker GitLab som versjonskontrollsystem.
Problemet var at AppCenter ikke integreres direkte med GitLab. En av lÞsningene som ble valgt var Ä gÄ rundt via BitBucket.
Trinn
1. Vi oppretter et tomt repository pÄ BitBucket.
Jeg ser ikke behovet for Ă„ beskrive dette nĂŠrmere đ
2. Vi setter opp GitLab.
Vi mÄ sÞrge for at ved push/merge til repositoryet, blir endringer ogsÄ lastet opp til BitBucket. For dette legger vi til en runner (eller redigerer den eksisterende .gitlab-ci.yml-filen).
FĂžrst legger vi til kommandoer i seksjonen before_scripts.
- git config --global user.email "user@email"
- git config --global user.name "username"Deretter legger vi til fĂžlgende kommando i Ăžnsket stage:
- git push --mirror https://username:password@bitbucket.org/username/projectname.gitI mitt tilfelle fikk jeg fĂžlgende fil:
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 kjÞrer byggingen, og sjekker at vÄre endringer/filer ligger pÄ BitBucket.
* som erfaringen viser, er oppsett av SSH-nĂžkler ikke obligatorisk. Men for sikkerhets skyld vil jeg gi algoritmen for oppsett av tilkoblingen via SSH nedenfor.
Tilkobling via SSH
FÞrst mÄ vi generere en SSH-nÞkkel. Det er skrevet mange artikler om dette. Som eksempel kan du se pÄ .
De genererte nĂžklene ser omtrent slik ut:

Deretter den hemmelige nÞkkelen mÄ legges til som en variabel pÄ GitLab. For dette gÄr vi til Innstillinger > CI/CD > MiljÞvariabler. Vi legger til ALT innholdet fra filen der du lagret den hemmelige nÞkkelen. La oss kalle variabelen SSH_PRIVATE_KEY.
* denne filen, i motsetning til filen med den offentlige nĂžkkelen, vil ikke ha et filnavn.

Flott, videre mÄ vi legge den offentlige nÞkkelen til BitBucket. For dette Äpner vi repositoryet, gÄr til Innstillinger > TilgangsnÞkler.

Her klikker vi pÄ Legg til nÞkkel og limer inn innholdet fra filen med den offentlige nÞkkelen (filen med .pub-utvidelsen).
Neste steget vil vi bruke nĂžklene i gitlab-runner. Bruk disse kommandoene, men spesifiser dine egne data i stedet for stjernesymbolene.
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. Konfigurere AppCenter
Vi lager en ny applikasjon pÄ AppCenter.

Angi sprÄk/plattform

Deretter gÄr vi til seksjonen Bygg av den nettopp opprettede applikasjonen. Vi velger BitBucket og repositoriet som ble laget i trinn 1.
Flott, nÄ mÄ vi konfigurere byggingen. For dette finner vi tannhjulikonet.

I prinsippet er alt intuitivt. Velg prosjektet og konfigurasjonen. Aktiver testkjĂžring etter byggingen hvis nĂždvendig. De vil bli kjĂžrt automatisk.
I prinsippet er det alt. Det hÞres ikke vanskelig ut, men, selvsagt, vil ikke alt gÄ glatt. Derfor vil jeg beskrive noen feil jeg stÞtte pÄ under arbeidet:
âssh-keygenâ er ikke gjenkjent som en intern eller ekstern kommando.
Dette skjer fordi stien til ssh-keygen.exe ikke er lagt til i miljĂžvariablene.
Det finnes to alternativer: legg til C:Program FilesGitusrbin i miljĂžvariablene (gjeldende etter omstart av maskinen), eller kjĂžr konsollen fra denne katalogen.
Har AppCenter koblet seg til feil BitBucket-konto?
For Ä lÞse problemet mÄ du koble BitBucket-kontoen fra AppCenter. Logg inn pÄ den gale BitBucket-kontoen, gÄ til brukerprofilen.

Deretter gÄr vi til Innstillinger > Tilgangsstyring > OAuth

Klikk pÄ Tilbaketrekk for Ä koble kontoen fra.

Deretter mÄ du logge pÄ med riktig BitBucket-konto.
* I verste fall kan du ogsÄ rydde nettleserens cache.
NÄ gÄr vi til AppCenter. GÄ til seksjonen Bygg, klikk pÄ FÄ bort BitBucket-konto.

NÄr den gamle kontoen er frakoblet, kobler vi AppCenter til igjen. NÄ til riktig konto.
âevalâ er ikke gjenkjent som en intern eller ekstern kommando.
Bruk i stedet kommandoen
- eval $(ssh-agent -s)Kommandoen:
- ssh-agentI noen tilfeller mÄ du enten spesifisere full sti til C:Program FilesGitusrbinssh-agent.exe, eller legge til denne stien i systemvariablene pÄ maskinen der runneren kjÞrer.
AppCenter Build prĂžver Ă„ starte byggingen for prosjektet fra et utdatert bitBucket-repositorium.
I mitt tilfelle oppsto problemet fordi jeg jobbet med flere kontoer. Det ble lĂžst ved Ă„ tĂžmme cachen.
Kilde: habr.com
