ืคืจืืืืจื, ืืขืื!
ืืื ืืืึธืื ืืื ืฆื ืจืขืื ืืืขืื ืืืื ืืขืจืคืึทืจืื ื ืืื ืืึทืฉืืขืืืงื GitLab ืืื AppCenter ืื ืืึทืืจืืืฉืึทื ืืืจื BitBucket.
ืื ื ืืื ืคึฟืึทืจ ืึทืืึท ืื ืึทืืจืืืฉืึทื ืืื ืืืืคืืขืฉืืื ืขื ืืืขื ืืึทืฉืืขืืืงื ืึทืจืืืฃ ืึธืืึทืืึทืืืง ืงืึทืืขืจ ืคืื ืื ืืขืกืฅ ืคึฟืึทืจ ืึท ืงืจืืึทื-ืคึผืืึทืืคืึธืจืืข ืคึผืจืืืขืงื ืืืืฃ Xamarin. ืืืืืืื ืืืืึธืจืืึทื ืืื ืืขืจ ืื ืฉื ืืึทืื!
* ืืื ืืืขื ืืึทืื ืึท ืืึทืืื ืืขืจ ืึทืจืืืงื ืืืขืื ืึธืืึทืืืืืื ื ืื ืืขืกืืื ื ืืื ืงืจืืึทื-ืคึผืืึทืืคืึธืจืืข ืื ืึธืื ืืืื ืืขืจ ืฆืืืืจ ืืื ืืื ืืขืจืขืกืืจื.
ืืื ืืึธื ื ืึธืจ ืืืืกืืขืืจืึธืื ืืืื ืึทืืึท ืืึทืืขืจืืึทื
ืึทืจืืขื: ืฉืืขืื ืึทืจืืืฃ ืึธืืึทืืึทืืืง ืงืึทืืขืจ ืคืื ืื ืืขืกืฅ ืืืืฃ ืึทืคึผืคึผืฆืขื ืืจืึทื, ืืืืึทื ืืื ืืืขืจ ืืึทื ืฉืึทืคึฟื ื ืืฆื 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
ืืืจ ืงืึทืืขืจ ืื ืืืืขื, ืงืึธื ืืจืึธืืืจื ืึทื ืืื ืืืขืจ ืขื ืืขืจืื ืืขื / ืืขืงืขืก ืืขื ืขื ืืืืฃ BitBucket.
* ืืื ืคืืจ ืืื ืืขืืืืื, ืืึทืฉืืขืืืงื ืึทืจืืืฃ SSH ืฉืืืกืืขื ืืื ืึทืคึผืฉืึทื ืึทื. ืึธืืขืจ, ื ืึธืจ ืืื ืคืึทื, ืืื ืืืขื ืฆืืฉืืขืื ืึท ืึทืืืขืจืืืึทื ืคึฟืึทืจ ืืึทืฉืืขืืืงื ืึท ืงืฉืจ ืืืจื SSH ืืื ืื
ืงืึทื ืขืงืืื ื ืืืจื SSH
ืขืจืฉืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืืฉืขื ืขืจืืื ืึท SSH ืฉืืืกื. ืคืืืข ืึทืจืืืงืืขื ืืขื ืขื ืืขืฉืจืืื ืืืขืื ืืขื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืงืขื ืขื ืงืืงื
ืื ืืืฉืขื ืขืจืืืืึทื ืฉืืืกืืขื ืงืืงื ืขืคึผืขืก ืืื ืืึธืก:
ืืืืึทืืขืจ ืืขืจ ืกืื ืฉืืืกื ืืึทืจืฃ ืืืื ืืืกืืฃ ืืื ืึท ืืืึทืืขืืืืืง ืืืืฃ GitLab. ืฆื ืืึธื ืืึธืก, ืืืื ืฆื ืกืขืืืื ืืก> ืกื / ืงืึธืืคึผืึทืงืืืืกืง> ืกืืืืืืข ืืืขืจืืึทืืึทืื. ืืืื ืึทืืข ืื ืืื ืืึทืื ืคืื ืืขืจ ืืขืงืข ืืื ืืืึธืก ืืืจ ืืึธื ืืขืจืืืขืืืขื ืื ืกืื ืฉืืืกื. ืืึธืืืจ ืจืืคื ืื ืืืึทืืขืืืืืง SSH_PRIVATE_KEY.
* ืืขื ืืขืงืข, ื ืื ืขื ืืขื ืื ืคืืืืืง ืฉืืืกื ืืขืงืข, ืืืขื ื ืืฉื ืืึธืื ืื ืคืึทืจืืขื ืืขืจืื ื
ืืจืืืก, ืืืืึทืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืืขื ืฆืืืืจ ืฉืืืกื ืฆื BitBucket. ืฆื ืืึธื ืืึธืก, ืขืคืขื ืขื ืื ืจืืคึผืึทืืึทืืึธืจื ืืื ืืืื ืฆื ืกืขืืืื ืืก> ืึทืงืกืขืก ืงืื.
ืืึธ ืืืจ ืืื ืฆืืืขืื ืฉืืืกื ืืื ืึทืจืืึทื ืืืืื ืื ืืื ืืึทืื ืคืื ืืขืจ ืืขืงืข ืืื ืื ืฆืืืืจ ืฉืืืกื (ืืขืงืข ืืื ืื ืคืึทืจืืขื ืืขืจืื ื .ืคึผืื).
ืืขืจ ืืืืึทืืขืจ ืฉืจืื ืืื ืฆื ื ืืฆื ืื ืฉืืืกืืขื ืืื 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. ืืึทืฉืืขืืืงื ืึทืคึผืคึผืฆืขื ืืขืจ
ืืืจ ืฉืึทืคึฟื ืึท ื ืืึทืข ืึทืคึผืืึทืงืืืฉืึทื ืืืืฃ ืึทืคึผืคึผืฆืขื ืืจืึทื.
ืกืคึผืขืฆืืคืืฆืืจื ืื ืฉืคึผืจืึทื / ืคึผืืึทืืคืึธืจืืข
ืืืืึทืืขืจ, ืืืื ืฆื ืื ืืืื ืึธืคึผืืืืืื ื ืคืื ืื ื ืื ืืืฉืืคื ืึทืคึผืืึทืงืืืฉืึทื. ืืึธ ืืืจ ืกืขืืขืงืืืจื BitBucket ืืื ืื ืจืืคึผืึทืืึทืืึธืจื ืืืฉืืคื ืืื ืฉืจืื 1.
ืืจืืืก, ืืืฆื ืืืจ ืืึทืจืคึฟื ืฆื ืงืึทื ืคืืืืขืจ ืื ืืืืขื. ืฆื ืืึธื ืืึธืก, ืืขืคึฟืื ืขื ืื ืืึทื ื ืืืืื
ืืื ืคึผืจืื ืฆืืคึผ, ืึทืืฅ ืืื ืื ืืืึทืืืื. ืืืืกืงืืืึทืื ืึท ืคึผืจืืืขืงื ืืื ืงืึทื ืคืืืืขืจืืืฉืึทื. ืืืื ื ืืืืืง, ืืขืื ืื ืงืึทืืขืจ ืคืื ืืขืกืฅ ื ืึธื ืื ืืืืขื. ืืื ืืืขืื ืึธื ืืืืื ืืืืืึธืืึทืืืฉ.
ืืืืกืืงืื, ืึทื ืก ืึทืืข. ืขืก ืกืึธืื ืืก ืคึผืฉืื, ืึธืืขืจ, ืืขืืืืื ืืืขื, ืึทืืฅ ืืืขื ื ืืฉื ืืืื ืกืืืืื. ืืขืจืืืขืจ, ืืื ืืืขื ืืึทืฉืจืืึทืื ืขืืืขืืข ืขืจืจืึธืจืก ืึทื ืืื ืืขืคึผืืึธื ืืขืจื ืืฉืขืช ืืจืืขืื:
'ssh-keygen' ืืื ื ืืฉื ืื ืขืจืงืขื ื ืืื ืึทื ืื ืขืจืืขื ืึธืืขืจ ืคืื ืืจืืืกื ืืืง ืืึทืคึฟืขื.
ืขืก ืืืื ืึทืงืขืจื ืืืืึทื ืืขืจ ืืจื ืฆื ssh-keygen.exe ืืื ื ืืฉื ืฆืืืขืืขืื ืฆื ืื ืกืืืืืืข ืืืขืจืืึทืืึทืื.
ืขืก ืืขื ืขื ืฆืืืื ืึธืคึผืฆืืขืก: ืืืืื C: Program FilesGitusrbin ืฆื ืื ืืืืืจืึทื ืืขื ืึทื ืืืขืจืืึทืืึทืื (ืืืขื ืืืื ืืขืืืขื ืื ื ืึธื ืจืืกืืึทืจืืื ื ืื ืืึทืฉืื), ืึธืืขืจ ืงืึทืืขืจ ืื ืงืึทื ืกืึธืื ืคึฟืื ืืขื ืืืขืืืืืึทืืขืจ.
ืึทืคึผืคึผืฆืขื ืืจืึทื ืงืึธื ื ืขืงืืขื ืฆื ืืขื ืืืืจืขืื BitBucket ืืฉืืื?
ืฆื ืกืึธืืืืข ืื ืคึผืจืึธืืืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืึทื ืืื ืง ืืืื BitBucket ืืฉืืื ืคึฟืื ืึทืคึผืคึผืฆืขื ืืจืึทื. ืืืจ ืงืืึธืฅ ืืื ืืขื ืืืืจืขืื BitBucket ืืฉืืื ืืื ืืืื ืฆื ืื ืืึทื ืืฆืขืจ ืคึผืจืึธืคืื.
ืืืืึทืืขืจ, ืืืื ืฆื ืกืขืืืื ืืก> ืึทืงืกืขืก ืืึทื ืึทืืขืืขื ื> OAuth
ืืจืืงื ืึธืคึผืืึทื ืฆื ืืคืฉืืืกื ืืืื ืืฉืืื.
ื ืึธื ืืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืงืืึธืฅ ืืื ืืื ืื ืคืืจืืื ืื BitBucket ืืฉืืื.
* ืืื ืึท ืืขืฆืืข ืจืืืึธืจื, ืืืื ืืืกืืขืงื ืืืื ืืืขืืขืจืขืจ ืงืึทืฉ.
ืืืฆื ืืึธืื ืืื ืื ืืืื ืฆื AppCenter. ืืืื ืฆื ืื ืืืื ืึธืคึผืืืืืื ื, ืืื Disconnect BitBucket ืืฉืืื
ืืืขื ืืขืจ ืึทืื ืืฉืืื ืืื ืึทื ืืื ืงื, ืืืจ ืคึฟืึทืจืืื ืืื ื AppCenter ืืืืืขืจ. ืืืฆื ืฆื ืื ืืขืืขืื ืืฉืืื.
'ืขืืืึทื' ืืื ื ืืฉื ืื ืขืจืงืขื ื ืืื ืึทื ืื ืขืจืืขื ืึธืืขืจ ืคืื ืืจืืืกื ืืืง ืืึทืคึฟืขื
ืืืจ ื ืืฆื ืขืก ืึทื ืฉืืึธื ืคืื ืึท ืืึทืคึฟืขื
- eval $(ssh-agent -s)
ืืึทื ืฉืึทืคึฟื:
- ssh-agent
ืืื ืขืืืขืืข ืงืึทืกืขืก, ืืืจ ืืืขื ืืึธืื ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืื ืคืื ืืจื ืฆื C: ืคึผืจืึธืืจืึทื ืคืืืขืก ืืืืืกืจืืื ืกืฉ-ืึทืืขื ื.ืขืงืกืข, ืึธืืขืจ ืืืืื ืืขื ืืืขื ืฆื ืื ืกืืกืืขื ืืืขืจืืึทืืึทืื ืืืืฃ ืื ืืึทืฉืื ืืื ืื ืจืึทื ืขืจ ืืื ืคืืืกื ืืืง.
AppCenter Build ืืื ืืจืืื ื ืฆื ืงืึทืืขืจ ืึท ืืืืขื ืคึฟืึทืจ ืึท ืคึผืจืืืขืงื ืคึฟืื ืึทื ืึทืืืืืืืื ืืืืืืงืงืขื ืจืืคึผืึทืืึทืืึธืจื
ืืื ืืืื ืคืึทื, ืื ืคึผืจืึธืืืขื ืืื ืืืืคืืขืฉืืื ืขื ืืืืึทื ืืื ืืื ืืขืืืขื ืืจืืขืื ืืื ืงืืืคื ืึทืงืึทืื ืฅ. ืืื ืืึทืฉืืึธืกื ืฆื ืืืกืืขืงื ืื ืงืึทืฉ.
ืืงืืจ: www.habr.com