AppCenter- ja GitLab-integraatio

Tryam, hei!

Haluaisin puhua kokemuksestani GitLab- ja AppCenter-integraation määrittämisestä BitBucketin kautta.

Tarve tällaiselle integraatiolle syntyi, kun Xamarinilla otettiin käyttöön käyttöliittymätestien automaattinen käynnistys monialustaiseen projektiin. Yksityiskohtainen opetusohjelma leikkauksen alla!

* Teen erillisen artikkelin käyttöliittymätestauksen automatisoinnista alustojen välisissä olosuhteissa, jos yleisö on kiinnostunut.

Kaivoin vain yhden tällaisen materiaalin Artikkeli. Siksi artikkelini voi auttaa jotakuta.

Tehtävä: Aseta automaattinen käyttöliittymätestien käynnistys AppCenteriin, koska tiimimme käyttää GitLabia versionhallintajärjestelmänä.

ongelma Kävi ilmi, että AppCenter ei integroidu suoraan GitLabiin. Ohitus BitBucketin kautta valittiin yhdeksi ratkaisuksi.

Шаги

1. Luo tyhjä arkisto BitBucketiin

En näe tarvetta kuvailla tätä sen tarkemmin :)

2. GitLabin määrittäminen

Tarvitsemme, että arkistoon työnnettäessä/yhdistettäessä muutokset ladataan myös BitBucketiin. Voit tehdä tämän lisäämällä runnerin (tai muokkaamalla olemassa olevaa .gitlab-ci.yml-tiedostoa).

Ensin lisäämme komennot before_scripts -osioon

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

Lisää sitten seuraava komento haluttuun vaiheeseen:

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

Minun tapauksessani tämä on tiedosto, jonka sain:

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

Käynnistämme koontiversion, tarkistamme, että muutokset/tiedostot ovat BitBucketissa.
* Kuten käytäntö on osoittanut, SSH-avainten määrittäminen on valinnaista. Mutta varmuuden vuoksi annan alla algoritmin yhteyden muodostamiseksi SSH:n kautta

Yhteys SSH:n kautta

Ensin sinun on luotava SSH-avain. Tästä on kirjoitettu monia artikkeleita. Voit esimerkiksi katsoa täällä.
Luodut avaimet näyttävät suunnilleen tältä:
AppCenter- ja GitLab-integraatio

Edelleen Salainen avain on lisättävä muuttujaksi GitLabissa. Voit tehdä tämän siirtymällä kohtaan Asetukset > CI/CD > Ympäristömuuttujat. Lisää KAIKKI sen tiedoston sisältö, johon tallensit salaisen avaimen. Kutsutaan muuttujaa SSH_PRIVATE_KEY.
* tällä tiedostolla, toisin kuin julkisen avaimen tiedostolla, ei ole tunnistetta
AppCenter- ja GitLab-integraatio

Hienoa, seuraavaksi sinun on lisättävä julkinen avain BitBucketiin. Voit tehdä tämän avaamalla arkiston ja siirtymällä kohtaan Asetukset > Pääsyavaimet.

AppCenter- ja GitLab-integraatio

Napsauta tässä Lisää avain ja lisää tiedoston sisältö julkisella avaimella (tiedosto, jonka tunniste on .pub).

Seuraava askel on käyttää avaimia gitlab-runnerissa. Käytä näitä komentoja, mutta korvaa tähdet tiedoillasi

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. AppCenterin määrittäminen

Luomme uuden sovelluksen AppCenteriin.

AppCenter- ja GitLab-integraatio

Määritä kieli/alusta

AppCenter- ja GitLab-integraatio

Siirry seuraavaksi juuri luodun sovelluksen Build-osioon. Siellä valitsemme BitBucketin ja vaiheessa 1 luodun arkiston.

Hienoa, nyt meidän on määritettävä kokoonpano. Voit tehdä tämän etsimällä rataskuvakkeen

AppCenter- ja GitLab-integraatio

Periaatteessa kaikki on intuitiivista. Valitse projekti ja kokoonpano. Ota tarvittaessa käyttöön testien käynnistäminen rakentamisen jälkeen. Ne käynnistyvät automaattisesti.

Pohjimmiltaan siinä kaikki. Kuulostaa yksinkertaiselta, mutta luonnollisesti kaikki ei mene sujuvasti. Siksi kuvailen joitain virheitä, jotka kohtasin työn aikana:

'ssh-keygen' ei tunnisteta sisäiseksi tai ulkoiseksi komennona.

Se tapahtuu myös siksi, että ssh-keygen.exe-polkua ei lisätä ympäristömuuttujiin.
Vaihtoehtoja on kaksi: lisää C:Program FilesGitusrbin ympäristömuuttujiin (käytetään koneen uudelleenkäynnistyksen jälkeen) tai käynnistä konsoli tästä hakemistosta.

Onko AppCenter liitetty väärään BitBucket-tiliin?

Ongelman ratkaisemiseksi sinun on purettava BitBucket-tilisi yhteys AppCenteriin. Kirjaudumme väärälle BitBucket-tilille ja siirrymme käyttäjäprofiiliin.

AppCenter- ja GitLab-integraatio

Siirry seuraavaksi kohtaan Asetukset > Käyttöoikeuksien hallinta > OAuth

AppCenter- ja GitLab-integraatio

Poista tilisi linkitys napsauttamalla Peruuta.

AppCenter- ja GitLab-integraatio

Tämän jälkeen sinun on kirjauduttava sisään vaaditulla BitBucket-tilillä.
* Viimeisenä keinona tyhjennä myös selaimen välimuisti.

Siirrytään nyt AppCenteriin. Siirry Build-osioon ja napsauta Katkaise BitBucket-tili

AppCenter- ja GitLab-integraatio

Kun vanhan tilin linkitys poistetaan, yhdistämme AppCenterin uudelleen. Nyt haluttuun tiliin.

'eval' ei tunnisteta sisäiseksi tai ulkoiseksi komennona

Käytämme sitä komennon sijaan

  - eval $(ssh-agent -s)

Tiimi:

  - ssh-agent

Joissain tapauksissa sinun on joko määritettävä täydellinen polku tiedostoon C:Program FilesGitusrbinssh-agent.exe tai lisättävä tämä polku sen koneen järjestelmämuuttujiin, jossa ajoohjain on käynnissä.

AppCenter Build yrittää käynnistää koontiversion projektille vanhentuneesta bitBucket-arkistosta

Minun tapauksessani ongelma syntyi, koska työskentelin useiden tilien kanssa. Päätin tyhjentää välimuistin.

Lähde: will.com

Lisää kommentti