Trem, hallo!
Ek wil jou vertel van my ervaring met die opstel van GitLab en AppCenter-integrasie via BitBucket.
Die behoefte aan sulke integrasie het ontstaan tydens die opstel van outomatiese bekendstelling van UI-toetse vir 'n kruisplatformprojek op Xamarin. Gedetailleerde tutoriaal onder die snit!
* Ek sal 'n aparte artikel skryf oor die outomatisering van UI-toetsing in kruisplatformtoestande as die publiek belangstel.
Ek het net een soortgelyke materiaal opgegrawe
Taak: Stel UI-toetse op om outomaties op AppCenter te loop terwyl ons span GitLab as 'n weergawebeheerstelsel gebruik.
probleem blyk te wees dat AppCenter nie direk met GitLab integreer nie. As een van die oplossings is 'n omleiding deur BitBucket gekies.
stappe
1. Skep 'n leë bewaarplek op BitBucket
Ek sien nie nodig om dit in meer besonderhede te beskryf nie 🙂
2. Stel GitLab op
Ons moet veranderinge aan die bewaarplek druk/saamvoeg om ook na BitBucket opgelaai te word. Om dit te doen, voeg 'n hardloper by (of wysig 'n bestaande .gitlab-ci.yml-lêer).
Voeg eers opdragte by die before_scripts-afdeling
- git config --global user.email "user@email"
- git config --global user.name "username"
Voeg dan die volgende opdrag by die verlangde stadium:
- git push --mirror https://username:[email protected]/username/projectname.git
In my geval is dit die lêer
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
Ons hardloop die bou, maak seker dat ons veranderinge/lêers op BitBucket is.
* Soos die praktyk getoon het, is die opstel van SSH-sleutels opsioneel. Maar, net vir ingeval, sal ek die verbindingsopstelalgoritme deur SSH hieronder gee
Verbind via SSH
Eerstens moet u 'n SSH-sleutel genereer. Baie artikels is hieroor geskryf. Vir 'n voorbeeld kan jy sien
Die gegenereerde sleutels lyk iets soos volg:
Verdere Die geheime sleutel moet bygevoeg word as 'n veranderlike op GitLab. Om dit te doen, gaan na Instellings > CI / CD > Omgewingsveranderlikes. Ons voeg AL die inhoud by van die lêer waarin jy die geheime sleutel gestoor het. Kom ons noem die veranderlike SSH_PRIVATE_KEY.
* hierdie lêer, anders as die publieke sleutellêer, sal nie 'n uitbreiding hê nie
Groot, die volgende stap is om die publieke sleutel by BitBucket te voeg. Om dit te doen, maak die bewaarplek oop, gaan na Instellings > Toegangsleutels.
Hier maak ons Add Key en plak die inhoud van die lêer met die publieke sleutel (lêer met die .pub-uitbreiding).
Die volgende stap is om die sleutels in gitlab-runner te gebruik. Gebruik hierdie opdragte, maar vervang die sterretjies met jou eie 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 [email protected]
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*****.git
3. Stel AppCenter op
Ons skep 'n nuwe toepassing op AppCenter.
Spesifiseer taal/platform
Gaan dan na die Bou-afdeling van die nuutgeskepte toepassing. Kies BitBucket daar en die bewaarplek wat in stap 1 geskep is.
Groot, nou moet jy die bou konfigureer. Om dit te doen, vind die rat-ikoon
In beginsel is alles daar intuïtief duidelik. Kies 'n projek en konfigurasie. Aktiveer indien nodig die bekendstelling van toetse na die bou. Hulle sal outomaties begin.
Basies, dit is al. Dit klink maklik, maar alles sal natuurlik nie vlot verloop nie. Daarom sal ek sommige van die foute beskryf wat ek ondervind het terwyl ek gewerk het:
'ssh-keygen' word nie herken as 'n interne of eksterne opdrag nie.
Kom voor omdat die pad na ssh-keygen.exe nie by die omgewingsveranderlikes gevoeg is nie.
Daar is twee opsies: voeg C:Program FilesGitusrbin by die Enviroment Variables (sal van toepassing wees nadat die masjien herlaai is), of laat die konsole vanaf hierdie gids hardloop.
AppCenter aan die verkeerde BitBucket-rekening gekoppel?
Om die probleem op te los, moet jy jou BitBucket-rekening van AppCenter ontkoppel. Ons gaan na die verkeerde BitBucket-rekening, gaan na die gebruikersprofiel.
Gaan dan na Instellings > Toegangsbestuur > OAuth
Klik Herroep om jou rekening te ontkoppel.
Daarna moet u onder die gewenste BitBucket-rekening aanmeld
* As 'n laaste uitweg, maak u blaaierkas skoon.
Kom ons gaan nou na AppCenter. gaan na die Bou-afdeling, klik Ontkoppel BitBucket-rekening
Wanneer die ou rekening ontkoppel is, koppel ons die AppCenter weer. Nou na die verlangde rekening.
'eval' word nie as 'n interne of eksterne opdrag erken nie
Gebruik in plaas van opdrag
- eval $(ssh-agent -s)
Span:
- ssh-agent
In sommige gevalle sal jy óf die volledige pad na C:\Program Files\Gitusrbinssh-agent.exe moet spesifiseer, óf hierdie pad moet byvoeg by die stelselveranderlikes op die masjien waar runner loop
AppCenter Build probeer om 'n bou vir 'n projek uit 'n verouderde bitBucket-bewaarplek te laat loop
In my geval het die probleem ontstaan as gevolg van die feit dat ek met verskeie rekeninge gewerk het. Besluit om die kas skoon te maak.
Bron: will.com