ืืจืืื, ืฉืืื!
ืื ื ืจืืฆื ืืืืจ ืขื ืื ืืกืืื ืฉืื ืืืืืจืช ืฉืืืื GitLab ื-AppCenter ืืืืฆืขืืช BitBucket.
ืืฆืืจื ืืืื ืืืจืฆืื ืืื ืืชืขืืจืจ ืืขืช ืืืืจืช ืืฉืงื ืืืืืืืืช ืฉื ืืืื ื UI ืขืืืจ ืคืจืืืงื ืืืฆื ืคืืืคืืจืืืช ื-Xamarin. ืืืจืื ืืคืืจืืช ืืชืืช ืืืืจื!
* ืื ื ืืขืฉื ืืืืจ ื ืคืจื ืขื ืืืืืืฆืื ืฉื ืืืืงืืช ืืืฉืง ืืฉืชืืฉ ืืชื ืืื ืืืฆื ืคืืืคืืจืื ืื ืืฆืืืืจ ืืขืื ืืื.
ืืคืจืชื ืจืง ืืืืจ ืืื ืืื
ืืฉืืื: ืืืืจ ืืฉืงื ืืืืืืืืช ืฉื ืืืื ื ืืืฉืง ืืฉืชืืฉ ื-AppCenter, ืืืชืืฉื ืืื ืฉืืฆืืืช ืฉืื ื ืืฉืชืืฉ ื-GitLab ืืืขืจืืช ืืงืจืช ืืจืกืืืช.
ืืขืื ืืชืืจืจ ืฉ-AppCenter ืื ืืฉืชืื ืืฉืืจืืช ืขื GitLab. ืืขืงืฃ ืืจื BitBucket ื ืืืจ ืืืื ืืคืชืจืื ืืช.
ะจะฐะณะธ
1. ืฆืืจ ืืืืจ ืจืืง ื-BitBucket
ืื ื ืื ืจืืื ืฆืืจื ืืชืืจ ืืช ืื ืืืชืจ ืคืืจืื :)
2. ืืืืจืช GitLab
ืื ืื ื ืฆืจืืืื ืฉืืืฉืจ ืืืืคืื/ืืืืืืื ืืืืืจ, ืฉืื ืืืื ืืืขืื ืื ื-BitBucket. ืืฉื ืื, ืืืกืฃ ืจืฅ (ืื ืขืจืื ืืช ืงืืืฅ ื-gitlab-ci.yml ืืงืืื).
ืจืืฉืืช ื ืืกืืฃ ืคืงืืืืช ืืงืืข before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"
ืืืืจ ืืื ืืืกืฃ ืืช ืืคืงืืื ืืืื ืืฉืื ืืจืฆืื:
- git push --mirror https://username:[email protected]/username/projectname.git
ืืืงืจื ืฉืื, ืื ืืงืืืฅ ืฉืงืืืืชื:
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
ืื ื ืืฉืืงืื ืืช ื-build, ืืืืงืื ืฉืืฉืื ืืืื/ืงืืฆืื ืฉืื ื ื ืืฆืืื ื-BitBucket.
* ืืคื ืฉืืจืื ืืคืืขื, ืืืืจืช ืืคืชืืืช SSH ืืื ืืืคืฆืืื ืืืช. ืืื, ืืื ืืงืจื, ืืกืคืง ืืืืืจืืชื ืืืืืจืช ืืืืืจ ืืืืฆืขืืช SSH ืืืื
ืืชืืืจ ืืจื SSH
ืจืืฉืืช ืขืืื ืืืฆืืจ ืืคืชื SSH. ืขื ืื ื ืืชืื ืืืืจืื ืจืืื. ืืืืืื, ืืชื ืืืื ืืืกืชืื
ืืืคืชืืืช ืฉื ืืฆืจื ื ืจืืื ืืขืจื ืื:
ืืืฉื ืืืคืชื ืืกืืื ืฆืจืื ืืืืกืืฃ ืืืฉืชื ื ื-GitLab. ืืื ืืขืฉืืช ืืืช, ืขืืืจ ืื ืืืืจืืช > CI/CD > ืืฉืชื ื ืกืืืื. ืืืกืฃ ืืช ืื ืืชืืื ืฉื ืืงืืืฅ ืฉืื ืฉืืจืช ืืช ืืืคืชื ืืกืืื. ืืืื ื ืงืจื ืืืฉืชื ื SSH_PRIVATE_KEY.
* ืืงืืืฅ ืื, ืื ืืืื ืืงืืืฅ ืืืคืชื ืืฆืืืืจื, ืื ืชืืื ืืกืืืืช
ืืฆืืื, ืืฉืื ืืื ืขืืื ืืืืกืืฃ ืืช ืืืคืชื ืืฆืืืืจื ื-BitBucket. ืืื ืืขืฉืืช ืืืช, ืคืชื ืืช ืืืืืจ ืืขืืืจ ืื ืืืืจืืช > ืืคืชืืืช ืืืฉื.
ืืื ืื ื ืืืืฆืื ืขื ืืืกืฃ ืืคืชื ืืืื ืืกืื ืืช ืชืืื ืืงืืืฅ ืขื ืืืคืชื ืืฆืืืืจื (ืงืืืฅ ืขื ืืกืืืืช .pub).
ืืฉืื ืืื ืืื ืืืฉืชืืฉ ืืืคืชืืืช ื-gitlab-runner. ืืฉืชืืฉ ืืคืงืืืืช ืืื, ืื ืืืืฃ ืืช ืืืืืืืืช ืืคืจืืื ืฉืื
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. ืืืืจืช AppCenter
ืื ื ืืืฆืจืื ืืคืืืงืฆืื ืืืฉื ื-AppCenter.
ืฆืืื ืืช ืืฉืคื/ืคืืืคืืจืื
ืืืืจ ืืื, ืขืืืจ ืืงืืข Build ืฉื ืืืืฉืื ืืืืฉ ืฉื ืืฆืจ. ืฉื ืื ื ืืืืจืื ืืช BitBucket ืืืช ืืืืืจ ืฉื ืืฆืจ ืืฉืื 1.
ื ืืืจ, ืขืืฉืื ืื ืื ื ืฆืจืืืื ืืืืืืจ ืืช ื-build. ืืื ืืขืฉืืช ืืืช, ืืฆื ืืช ืกืื ืืืื ืืฉืื ืืื
ืืืืคื ืขืงืจืื ื, ืืื ืฉื ืืื ืืืืืืืื. ืืืจ ืคืจืืืงื ืืชืฆืืจื. ืืืืืช ืืฆืืจื, ืืคืฉืจ ืืช ืืฉืงืช ืืืืืงืืช ืืืืจ ืืื ืืื. ืื ืืชืืืื ืืืืืืืืช.
ืืขืืงืจืื, ืื ืืื. ืื ื ืฉืืข ืคืฉืื, ืืื, ืืืืคื ืืืขื, ืืื ืื ืืขืืืจ ืืืง. ืืื, ืืชืืจ ืืื ืฉืืืืืช ืฉื ืชืงืืชื ืืื ืืืืื ืืขืืืื:
'ssh-keygen' ืืื ื ืืืืื ืืคืงืืื ืคื ืืืืช ืื ืืืฆืื ืืช.
ืื ืงืืจื ืื ืืืื ืฉืื ืชืื ื-ssh-keygen.exe ืืื ื ื ืืกืฃ ืืืฉืชื ื ืืกืืืื.
ืืฉื ื ืฉืชื ืืคืฉืจืืืืช: ืืืกืฃ C:Program FilesGitusrbin ืืืฉืชื ื ืืกืืืื (ืืืื ืืืืจ ืืชืืื ืืืืฉื), ืื ืืคืขื ืืช ืืงืื ืกืืื ืืืกืคืจืืื ืืื.
AppCenter ืืืืืจ ืืืฉืืื BitBucket ืืื ื ืืื?
ืืื ืืคืชืืจ ืืช ืืืขืื, ืขืืื ืืืื ืืช ืืงืืฉืืจ ืฉื ืืฉืืื BitBucket ืฉืื ื-AppCenter. ืื ื ื ืื ืกืื ืืืฉืืื BitBucket ืืื ื ืืื ืื ืื ืกืื ืืคืจืืคืื ืืืฉืชืืฉ.
ืืืืจ ืืื, ืขืืืจ ืื ืืืืจืืช > ื ืืืื ืืืฉื > OAuth
ืืืฅ ืขื ืืื ืืื ืืืื ืืช ืงืืฉืืจ ืืืฉืืื ืฉืื.
ืืืืจ ืืื, ืขืืื ืืืชืืืจ ืขื ืืฉืืื BitBucket ืื ืืจืฉ.
* ืืืืฆื ืืืจืื, ื ืงื ืื ืืช ืืืืื ืืืคืืคื ืฉืื.
ืืขืช ื ืขืืืจ ื- AppCenter. ืขืืืจ ืืงืืข ืื ืืื, ืืืฅ ืขื ื ืชืง ืืฉืืื BitBucket
ืืืฉืจ ืืืฉืืื ืืืฉื ืืืืื, ืื ื ืืงืฉืจืื ืฉืื ืืช AppCenter. ืขืืฉืื ืืืฉืืื ืืจืฆืื.
'eval' ืืื ื ืืืืจ ืืคืงืืื ืคื ืืืืช ืื ืืืฆืื ืืช
ืื ื ืืฉืชืืฉืื ืื ืืืงืื ืคืงืืื
- eval $(ssh-agent -s)
ืงึฐืืึผืฆึธื:
- ssh-agent
ืืืงืจืื ืืกืืืืื, ืืืื ืขืืื ืืฆืืื ืืช ืื ืชืื ืืืื ืื C:Program FilesGitusrbinssh-agent.exe, ืื ืืืืกืืฃ ื ืชืื ืื ืืืฉืชื ื ืืืขืจืืช ืืืืฉื ืฉืื ืคืืขื ืืจืฅ
AppCenter Build ืื ืกื ืืืฉืืง build ืขืืืจ ืคืจืืืงื ืืืืืจ bitBucket ืืืืฉื
ืืืงืจื ืฉืื, ืืืขืื ื ืืฆืจื ืืืื ืฉืขืืืชื ืขื ืืกืคืจ ืืฉืืื ืืช. ืืืืืชื ืื ืงืืช ืืช ืืืืืื.
ืืงืืจ: www.habr.com