Integrasjon av AppCenter og GitLab

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

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

Vi 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Ä here.
De genererte nĂžklene ser omtrent slik ut:
Integrasjon av AppCenter og GitLab

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.
Integrasjon av AppCenter og GitLab

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

Integrasjon av AppCenter og GitLab

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

3. Konfigurere AppCenter

Vi lager en ny applikasjon pÄ AppCenter.

Integrasjon av AppCenter og GitLab

Angi sprÄk/plattform

Integrasjon av AppCenter og GitLab

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.

Integrasjon av AppCenter og GitLab

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.

Integrasjon av AppCenter og GitLab

Deretter gÄr vi til Innstillinger > Tilgangsstyring > OAuth

Integrasjon av AppCenter og GitLab

Klikk pÄ Tilbaketrekk for Ä koble kontoen fra.

Integrasjon av AppCenter og GitLab

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.

Integrasjon av AppCenter og GitLab

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

I 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

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster