Π’ΡΡΠΌ, Π·Π΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅!
Π₯ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ²ΠΎΡΠΌ ΠΎΠΏΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ³Π°ΡΠΈΠΈ GitLab ΠΈ AppCenter ΡΠ΅ΡΠ΅Π· BitBucket.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² Ρ ΠΎΠ΄Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° UI ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Xamarin. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΡΡΠΎΡΠΈΠ°Π» ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ!
* ΠΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ UI ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ΄Π΅Π»Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ° Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π½Π°ΡΡΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ
ΠΠ°Π΄Π°ΡΠ°: ΠΠ°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°ΠΏΡΡΠΊ UI ΡΠ΅ΡΡΠΎΠ² Π½Π° AppCenter ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ GitLab ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ AppCenter Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ³ΠΈΡΡΠ΅ΡΡΡ Ρ GitLab Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΠΎΠ±Ρ ΠΎΠ΄ ΡΠ΅ΡΠ΅Π· BitBucket.
Π¨Π°Π³ΠΈ
1. Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° BitBucket
ΠΠ΅ Π²ΠΈΠΆΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ π
2. ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ GitLab
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ push/merge Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°Π»ΠΈΠ²Π°Π»ΠΈΡΡ Π΅ΡΠ΅ ΠΈ Π½Π° BitBucket. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ runner(ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ .gitlab-ci.yml ΡΠ°ΠΉΠ»).
CΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΠΊΡΠΈΡ before_scripts
- git config --global user.email "user@email"
- git config --global user.name "username"
ΠΠΎΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π½ΡΠΆΠ½ΡΠΉ stage:
- 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. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΌ Π² Settings > CI/CD > Enviroment Variables. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΠ‘Π ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ. ΠΠ°Π·ΠΎΠ²ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ SSH_PRIVATE_KEY.
* ΡΡΠΎΡ ΡΠ°ΠΉΠ», Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠ΅ΠΌ, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈΡΠ½ΠΎ, Π΄Π°Π»ΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π½Π° BitBucket. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Settings > Access Keys.
Π’ΡΡ Π½Π°ΠΆΠΈΠ²Π°Π΅ΠΌ Add Key ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠ΅ΠΌ (ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .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.
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π±ΠΈΠ»Π΄. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΈΠΊΠΎΠ½ΠΊΡ ΡΠ΅ΡΡΠ΅ΡΠ΅Π½ΠΊΠΈ
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΠ°ΠΌ Π²ΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π±ΠΈΠ»Π΄Π°. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π½Π° ΡΡΠΎΠΌ Π²ΡΡ. ΠΠ²ΡΡΠΈΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π³Π»Π°Π΄ΠΊΠΎ Π²ΡΡ Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠΏΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ:
‘ssh-keygen’ is not recognized as an internal or external command.
ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈ-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ssh-keygen.exe Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠΈΠ°Π½ΡΠ° Π΄Π²Π°: Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ C:Program FilesGitusrbin Π² Enviroment Variables (ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ°ΡΠΈΠ½Ρ), ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ· ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
AppCenter ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π½Π΅ ΠΊ ΡΠΎΠΌΡ BitBucket Π°ΠΊΠΊΠ°ΡΠ½ΡΡ?
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²ΡΠ·Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ BitBucket ΠΎΡ AppCenter. ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ BitBucket Π°ΠΊΠΊΠ°ΡΠ½Ρ, ΠΈΠ΄Π΅ΠΌ Π² ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Settings > Access Management > OAuth
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Revoke, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΡΠ·Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡΡ ΠΏΠΎΠ΄ Π½ΡΠΆΠ½ΡΠΌ BitBucket Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠΌ
* Π ΠΊΡΠ°ΠΉΠ½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΈΡΡΠΈΡΡ ΠΊΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² AppCenter. ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅ΠΊΡΠΈΡ Build, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Disconnect BitBucket account
ΠΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²ΡΠ·Π°Π½, ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ AppCenter Π·Π°Π½ΠΎΠ²ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠΆΠ΅ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ.
‘eval’ is not recognized as an internal or external command
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
- eval $(ssh-agent -s)
ΠΠΎΠΌΠ°Π½Π΄Ρ:
- ssh-agent
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ C:Program FilesGitusrbinssh-agent.exe, ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π³Π΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½ runner
AppCenter Build ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΈΠ»Π΄ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ· Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ bitBucket ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΡΠ°Π±ΠΎΡΠ°Π»Π° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌΠΈ. Π Π΅ΡΠΈΠ»Π°ΡΡ ΠΎΡΠΈΡΡΠΊΠΎΠΉ ΠΊΡΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com