Pagsasama ng AppCenter at GitLab

Tryam, hello!

Gusto kong pag-usapan ang aking karanasan sa pag-set up ng GitLab at pagsasama ng AppCenter sa pamamagitan ng BitBucket.

Ang pangangailangan para sa naturang pagsasama ay lumitaw kapag nagse-set up ng awtomatikong paglulunsad ng mga pagsubok sa UI para sa isang cross-platform na proyekto sa Xamarin. Detalyadong tutorial sa ibaba ng hiwa!

* Gagawa ako ng hiwalay na artikulo tungkol sa pag-automate ng pagsubok sa UI sa mga kundisyong cross-platform kung interesado ang publiko.

Isa lang ang nahukay kong materyal isang artikulo. Samakatuwid, ang aking artikulo ay maaaring makatulong sa isang tao.

Gawain: I-set up ang awtomatikong paglulunsad ng mga pagsubok sa UI sa AppCenter, dahil ginagamit ng aming team ang GitLab bilang isang version control system.

problema Ito ay lumabas na ang AppCenter ay hindi direktang isinasama sa GitLab. Ang Bypass sa pamamagitan ng BitBucket ay napili bilang isa sa mga solusyon.

Steps

1. Gumawa ng walang laman na repository sa BitBucket

Hindi ko nakikita ang pangangailangan na ilarawan ito nang mas detalyado :)

2. Pagse-set up ng GitLab

Kailangan namin na kapag nagtutulak/nagsasama sa repositoryo, ang mga pagbabago ay ina-upload din sa BitBucket. Upang gawin ito, magdagdag ng runner (o i-edit ang umiiral na .gitlab-ci.yml file).

Una, nagdaragdag kami ng mga utos sa seksyong before_scripts

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

Pagkatapos ay idagdag ang sumusunod na utos sa nais na yugto:

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

Sa aking kaso, ito ang file na nakuha ko:

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

Inilunsad namin ang build, tingnan kung nasa BitBucket ang aming mga pagbabago/file.
* gaya ng ipinakita ng kasanayan, ang pagse-set up ng mga SSH key ay opsyonal. Ngunit, kung sakali, magbibigay ako ng algorithm para sa pag-set up ng koneksyon sa pamamagitan ng SSH sa ibaba

Kumokonekta sa pamamagitan ng SSH

Una kailangan mong bumuo ng isang SSH key. Maraming mga artikulo ang naisulat tungkol dito. Halimbawa, maaari kang tumingin dito.
Ang mga nabuong key ay ganito ang hitsura:
Pagsasama ng AppCenter at GitLab

Pa Ang sikretong susi kailangang idagdag bilang variable sa GitLab. Upang gawin ito, pumunta sa Mga Setting > CI/CD > Environment Variables. Idagdag ang LAHAT ng nilalaman ng file kung saan mo na-save ang sikretong key. Tawagan natin ang variable na SSH_PRIVATE_KEY.
* ang file na ito, hindi katulad ng pampublikong key file, ay hindi magkakaroon ng extension
Pagsasama ng AppCenter at GitLab

Mahusay, susunod na kailangan mong idagdag ang pampublikong susi sa BitBucket. Upang gawin ito, buksan ang repositoryo at pumunta sa Mga Setting > Mga Access Key.

Pagsasama ng AppCenter at GitLab

Dito namin i-click ang Add Key at ipasok ang mga nilalaman ng file gamit ang pampublikong key (file na may extension na .pub).

Ang susunod na hakbang ay ang paggamit ng mga susi sa gitlab-runner. Gamitin ang mga command na ito, ngunit palitan ang mga asterisk ng iyong mga detalye

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. Pagse-set up ng AppCenter

Lumilikha kami ng bagong application sa AppCenter.

Pagsasama ng AppCenter at GitLab

Tukuyin ang wika/platform

Pagsasama ng AppCenter at GitLab

Susunod, pumunta sa seksyong Build ng bagong likhang application. Doon pipiliin namin ang BitBucket at ang repositoryo na ginawa sa hakbang 1.

Mahusay, ngayon kailangan nating i-configure ang build. Upang gawin ito, hanapin ang icon na gear

Pagsasama ng AppCenter at GitLab

Sa prinsipyo, lahat ng bagay doon ay intuitive. Pumili ng proyekto at configuration. Kung kinakailangan, paganahin ang paglulunsad ng mga pagsubok pagkatapos ng build. Awtomatiko silang magsisimula.

Talaga, iyon lang. Mukhang simple, ngunit, natural, ang lahat ay hindi magiging maayos. Samakatuwid, ilalarawan ko ang ilang mga error na naranasan ko habang nagtatrabaho:

Ang 'ssh-keygen' ay hindi kinikilala bilang isang panloob o panlabas na utos.

Nangyayari din ito dahil ang path sa ssh-keygen.exe ay hindi idinagdag sa mga variable ng kapaligiran.
Mayroong dalawang opsyon: idagdag ang C:Program FilesGitusrbin sa Environment Variables (ilalapat pagkatapos i-reboot ang makina), o ilunsad ang console mula sa direktoryong ito.

Nakakonekta ang AppCenter sa maling BitBucket account?

Upang malutas ang problema, kailangan mong i-unlink ang iyong BitBucket account mula sa AppCenter. Nag-log in kami sa maling BitBucket account at pumunta sa profile ng user.

Pagsasama ng AppCenter at GitLab

Susunod, pumunta sa Mga Setting > Pamamahala sa Pag-access > OAuth

Pagsasama ng AppCenter at GitLab

I-click ang Bawiin upang i-unlink ang iyong account.

Pagsasama ng AppCenter at GitLab

Pagkatapos nito, kailangan mong mag-log in gamit ang kinakailangang BitBucket account.
* Bilang huling paraan, i-clear din ang cache ng iyong browser.

Ngayon, pumunta tayo sa AppCenter. pumunta sa Build section, i-click ang Idiskonekta ang BitBucket account

Pagsasama ng AppCenter at GitLab

Kapag na-unlink ang lumang account, muli naming nili-link ang AppCenter. Ngayon sa nais na account.

Ang 'eval' ay hindi kinikilala bilang isang panloob o panlabas na utos

Ginagamit namin ito sa halip na isang utos

  - eval $(ssh-agent -s)

Koponan:

  - ssh-agent

Sa ilang mga kaso, kakailanganin mong tukuyin ang buong path sa C:Program FilesGitusrbinssh-agent.exe, o idagdag ang path na ito sa mga variable ng system sa makina kung saan tumatakbo ang runner

Sinusubukan ng AppCenter Build na maglunsad ng build para sa isang proyekto mula sa isang lumang bitBucket repository

Sa aking kaso, lumitaw ang problema dahil nagtatrabaho ako sa maraming account. Nagpasya akong i-clear ang cache.

Pinagmulan: www.habr.com

Magdagdag ng komento