Pagsasama ng AppCenter at GitLab

Hi, hello!

Gusto kong ibahagi ang aking karanasan sa pagse-set up ng pagsasama sa pagitan ng GitLab at AppCenter sa pamamagitan ng BitBucket.

Ang pangangailangan para sa integration na ito ay lumitaw habang nagse-set up ng awtomatikong UI test execution para sa isang cross-platform na proyekto ng Xamarin. Nasa ibaba ang isang detalyadong tutorial!

* Magsusulat ako ng hiwalay na artikulo tungkol sa pag-automate ng pagsubok sa UI sa isang cross-platform na kapaligiran kung interesado ang publiko.

Naghukay lang ako ng isang katulad na 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 nagsasama sa GitLab. Ang isang workaround sa pamamagitan ng BitBucket ay pinili bilang isa sa mga solusyon.

Steps

1. Gumawa ng walang laman na repository sa BitBucket

Hindi ko na kailangang ilarawan ito nang mas detalyado 🙂

2. Pagse-set up ng GitLab

Gusto naming i-push/i-merge ang mga pagbabago sa repository at i-push din sa BitBucket. Para magawa ito, nagdagdag kami ng runner (o i-edit ang umiiral na .gitlab-ci.yml file).

Una, magdagdag ng mga utos sa seksyong before_scripts.

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

Pagkatapos ay idinagdag namin ang sumusunod na utos sa nais na yugto:

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

Sa aking kaso, nakakuha ako ng isang file na tulad nito

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

Pinapatakbo namin ang build at tinitingnan kung na-upload na ang aming mga pagbabago/file sa BitBucket.
* Gaya ng ipinakita ng kasanayan, ang pag-set up ng mga SSH key ay opsyonal. Ngunit kung sakali, ibibigay ko ang 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. Mayroong maraming mga artikulo tungkol dito. Para sa isang halimbawa, maaari mong tingnan dito.
Ang mga nabuong key ay ganito ang hitsura:
Pagsasama ng AppCenter at GitLab

Pa lihim na susi Kailangan mong idagdag ito bilang isang variable sa GitLab. Upang gawin ito, pumunta sa Mga Setting > CI/CD > Environment Variables. Idagdag ang buong 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, ngayon kailangan nating 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 i-paste 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 sarili mong 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 git@bitbucket.org

mirror:
  stage: mirror
  script:
    - git push --mirror https://****:****@bitbucket.org/*****/*****.git

3. Pagse-set up ng AppCenter

Gumawa 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. Piliin ang BitBucket at ang repository 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

Karaniwan, ang lahat ay madaling maunawaan. Pumili ng proyekto at configuration. Kung kinakailangan, paganahin ang mga pagsubok pagkatapos ng build. Awtomatiko silang tatakbo.

Iyon talaga. Mukhang simple, ngunit natural, hindi ito magiging maayos. Kaya, ilalarawan ko ang ilan sa mga pagkakamaling naranasan ko sa daan:

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

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

Nakakonekta ang AppCenter sa maling BitBucket account?

Upang malutas ang isyung ito, kailangan mong i-unlink ang iyong BitBucket account mula sa AppCenter. Mag-log in sa maling BitBucket account at pumunta sa iyong user profile.

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 nais na BitBucket account.
* Bilang huling paraan, i-clear din ang cache ng iyong browser.

Pumunta ngayon sa AppCenter. Pumunta sa seksyong Build at i-click ang Idiskonekta ang BitBucket account.

Pagsasama ng AppCenter at GitLab

Kapag na-unlink na ang lumang account, muling i-link ang AppCenter sa tamang account.

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

Ginagamit namin sa halip na utos

  - eval $(ssh-agent -s)

Koponan:

  - ssh-agent

Sa ilang mga kaso, kakailanganin mong tukuyin ang buong path sa C:\Program Files\Gitusrbinssh-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 bumuo ng isang proyekto mula sa isang lumang bitBucket repository.

Sa aking kaso, lumitaw ang problema dahil nagtatrabaho ako sa maraming account. Nalutas ng pag-clear ng cache ang problema.

Pinagmulan: www.habr.com

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster