AppCenter na Ushirikiano wa GitLab

Habari, habari!

Ningependa kushiriki uzoefu wangu wa kuanzisha ujumuishaji kati ya GitLab na AppCenter kupitia BitBucket.

Haja ya muunganisho huu iliibuka wakati wa kusanidi utekelezaji wa jaribio la UI kiotomatiki kwa mradi wa Xamarin wa jukwaa. Mafunzo ya kina ni hapa chini!

* Nitaandika nakala tofauti kuhusu upimaji wa kiolesura otomatiki katika mazingira ya jukwaa ikiwa umma unavutiwa.

Nilichimba nyenzo moja tu kama hiyo nakala. Kwa hiyo, makala yangu inaweza kusaidia mtu.

Kazi: Sanidi uzinduzi wa kiotomatiki wa majaribio ya UI kwenye AppCenter, ikizingatiwa kuwa timu yetu hutumia GitLab kama mfumo wa kudhibiti toleo.

tatizo Ilibadilika kuwa AppCenter haiunganishi moja kwa moja na GitLab. Njia ya kufanya kazi kupitia BitBucket ilichaguliwa kama moja ya suluhisho.

Шаги

1. Unda hazina tupu kwenye BitBucket

Sioni haja yoyote ya kuelezea hili kwa undani zaidi 🙂

2. Kuweka GitLab

Tunataka mabadiliko kusukumwa/kuunganishwa kwenye hazina na pia kusukumwa hadi BitBucket. Ili kufanya hivyo, tunaongeza mkimbiaji (au kuhariri faili iliyopo ya .gitlab-ci.yml).

Kwanza, ongeza amri kwenye sehemu ya before_scripts.

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

Kisha tunaongeza amri ifuatayo kwa hatua inayotaka:

- git push --mirror https://username:password@bitbucket.org/username/projectname.git

Kwa upande wangu, nilipata faili kama hii

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

Tunaendesha muundo na kuangalia kuwa mabadiliko/faili zetu zimepakiwa kwenye BitBucket.
* Kama mazoezi yameonyesha, kusanidi vitufe vya SSH ni hiari. Lakini ikiwa tu, nitatoa algorithm ya kusanidi muunganisho kupitia SSH hapa chini.

Inaunganisha kupitia SSH

Kwanza, unahitaji kutoa ufunguo wa SSH. Kuna makala nyingi kuhusu hili. Kwa mfano, unaweza kuangalia hapa.
Vifunguo vilivyotengenezwa vinaonekana kama hii:
AppCenter na Ushirikiano wa GitLab

Zaidi ya ufunguo wa siri Unahitaji kuiongeza kama tofauti katika GitLab. Ili kufanya hivyo, nenda kwa Mipangilio> CI/CD> Vigezo vya Mazingira. Ongeza yaliyomo yote ya faili ambapo ulihifadhi ufunguo wa siri. Wacha tuite kigeuzo SSH_PRIVATE_KEY.
* Faili hii, tofauti na faili ya ufunguo wa umma, haitakuwa na kiendelezi
AppCenter na Ushirikiano wa GitLab

Kubwa, sasa tunahitaji kuongeza ufunguo wa umma kwa BitBucket. Ili kufanya hivyo, fungua hifadhi na uende kwa Mipangilio> Funguo za Ufikiaji.

AppCenter na Ushirikiano wa GitLab

Hapa tunabofya Ongeza Ufunguo na ubandike yaliyomo kwenye faili kwa ufunguo wa umma (faili yenye kiendelezi cha .pub).

Hatua inayofuata ni kutumia funguo kwenye gitlab-runner. Tumia amri hizi, lakini badala ya nyota na data yako mwenyewe.

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

Unda programu mpya kwenye AppCenter.

AppCenter na Ushirikiano wa GitLab

Bainisha lugha/jukwaa

AppCenter na Ushirikiano wa GitLab

Ifuatayo, nenda kwenye sehemu ya Unda ya programu mpya iliyoundwa. Chagua BitBucket na hazina iliyoundwa katika hatua ya 1.

Kubwa, sasa tunahitaji kusanidi muundo. Ili kufanya hivyo, pata ikoni ya gia.

AppCenter na Ushirikiano wa GitLab

Kimsingi, kila kitu ni angavu. Chagua mradi na usanidi. Ikiwa ni lazima, wezesha vipimo baada ya kujenga. Wataendesha moja kwa moja.

Hiyo ndiyo kimsingi. Inaonekana rahisi, lakini kwa kawaida, yote hayataenda vizuri. Kwa hivyo, nitaelezea baadhi ya makosa niliyokutana nayo njiani:

'ssh-keygen' haitambuliwi kama amri ya ndani au nje.

Hii pia hutokea kwa sababu njia ya ssh-keygen.exe haijaongezwa kwa anuwai za mazingira.
Kuna chaguzi mbili: ongeza C:\Program Files\Gitus\rbin kwa Viwango vya Mazingira (hii itatumika baada ya kuwasha tena mashine), au uzindue koni kutoka kwenye saraka hii.

AppCenter imeunganishwa kwenye akaunti isiyo sahihi ya BitBucket?

Ili kutatua suala hili, unahitaji kutenganisha akaunti yako ya BitBucket kutoka kwa AppCenter. Ingia kwenye akaunti isiyo sahihi ya BitBucket na uende kwa wasifu wako wa mtumiaji.

AppCenter na Ushirikiano wa GitLab

Ifuatayo, nenda kwa Mipangilio > Udhibiti wa Ufikiaji > OAuth

AppCenter na Ushirikiano wa GitLab

Bofya Batilisha ili kutenganisha akaunti yako.

AppCenter na Ushirikiano wa GitLab

Baada ya hayo, unahitaji kuingia na akaunti inayotakiwa ya BitBucket.
* Kama hatua ya mwisho, pia futa akiba ya kivinjari chako.

Sasa nenda kwa AppCenter. Nenda kwenye sehemu ya Kujenga na ubofye Tenganisha akaunti ya BitBucket.

AppCenter na Ushirikiano wa GitLab

Baada ya akaunti ya zamani kutengwa, unganisha tena AppCenter kwa akaunti sahihi.

'eval' haitambuliwi kama amri ya ndani au nje

Tunatumia badala ya amri

  - eval $(ssh-agent -s)

Timu:

  - ssh-agent

Katika baadhi ya matukio, itabidi ubainishe njia kamili ya C:\Program Files\Gitusrbinssh-agent.exe, au uongeze njia hii kwenye vijiwezo vya mfumo kwenye mashine ambapo mkimbiaji anaendesha.

AppCenter Build inajaribu kujenga mradi kutoka kwa hazina ya zamani ya bitBucket.

Kwa upande wangu, shida ilitokea kwa sababu nilikuwa nikifanya kazi na akaunti nyingi. Kufuta kashe kulitatua tatizo.

Chanzo: mapenzi.com

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster