ํธ๋ผ์ด์, ์๋ ํ์ธ์!
BitBucket์ ํตํด GitLab ๋ฐ AppCenter ํตํฉ์ ์ค์ ํ ๊ฒฝํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
Xamarin์์ ํฌ๋ก์ค ํ๋ซํผ ํ๋ก์ ํธ์ ๋ํ UI ํ ์คํธ์ ์๋ ์์์ ์ค์ ํ ๋ ์ด๋ฌํ ํตํฉ์ ํ์์ฑ์ด ์๊ฒผ์ต๋๋ค. ์ปท ์๋์ ์์ธํ ํํ ๋ฆฌ์ผ์ด ์์ต๋๋ค!
* ๋์ค์ด ๊ด์ฌ์ ๊ฐ์ง ๊ฒฝ์ฐ ํฌ๋ก์ค ํ๋ซํผ ์กฐ๊ฑด์์ UI ํ ์คํธ ์๋ํ์ ๋ํ ๋ณ๋์ ๊ธฐ์ฌ๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฐ ์๋ฃ ํ๋๋ง ํํค์ณค์ด์
ํ์คํฌ: ์ฐ๋ฆฌ ํ์ด GitLab์ ๋ฒ์ ์ ์ด ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ AppCenter์์ UI ํ ์คํธ์ ์๋ ์์์ ๊ตฌ์ฑํฉ๋๋ค.
๋ฌธ์ 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์ ๋ณ์๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ค์ > 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์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค.
์ธ์ด/ํ๋ซํผ ์ง์
๋ค์์ผ๋ก ์๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ ์น์ ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ฌ๊ธฐ์์ BitBucket๊ณผ 1๋จ๊ณ์์ ์์ฑ๋ ์ ์ฅ์๋ฅผ ์ ํํฉ๋๋ค.
์ข์ต๋๋ค. ์ด์ ๋น๋๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํฑ๋๋ฐํด ์์ด์ฝ์ ์ฐพ์ผ์ธ์.
์์น์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ์ง๊ด์ ์ ๋๋ค. ํ๋ก์ ํธ์ ๊ตฌ์ฑ์ ์ ํํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋น๋ ํ ํ ์คํธ ์คํ์ ํ์ฑํํฉ๋๋ค. ์๋์ผ๋ก ์์๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๊ฐ๋จํด ๋ณด์ด์ง๋ง ๋น์ฐํ ๋ชจ๋ ์ผ์ด ์์กฐ๋กญ๊ฒ ์งํ๋์ง๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ค์ ๋ฐ์ํ ๋ช ๊ฐ์ง ์ค๋ฅ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
'ssh-keygen'์ ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น์ผ๋ก ์ธ์๋์ง ์์ต๋๋ค.
๋ํ ssh-keygen.exe ๊ฒฝ๋ก๊ฐ ํ๊ฒฝ ๋ณ์์ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค.
๋ ๊ฐ์ง ์ต์
์ด ์์ต๋๋ค: ํ๊ฒฝ ๋ณ์์ C:Program FilesGitusrbin์ ์ถ๊ฐํ๊ฑฐ๋(๋จธ์ ์ ์ฌ๋ถํ
ํ ํ ์ ์ฉ๋จ) ์ด ๋๋ ํฐ๋ฆฌ์์ ์ฝ์์ ์์ํฉ๋๋ค.
AppCenter๊ฐ ์๋ชป๋ BitBucket ๊ณ์ ์ ์ฐ๊ฒฐ๋์ด ์์ต๋๊น?
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด AppCenter์์ BitBucket ๊ณ์ ์ ์ฐ๊ฒฐ์ ํด์ ํด์ผ ํฉ๋๋ค. ์๋ชป๋ BitBucket ๊ณ์ ์ ๋ก๊ทธ์ธํ๊ณ ์ฌ์ฉ์ ํ๋กํ๋ก ์ด๋ํฉ๋๋ค.
๋ค์์ผ๋ก ์ค์ > ์ ๊ทผ ๊ด๋ฆฌ > OAuth๋ก ์ด๋ํ์ธ์.
๊ณ์ ์ฐ๊ฒฐ์ ํด์ ํ๋ ค๋ฉด ์ทจ์๋ฅผ ํด๋ฆญํ์ธ์.
๊ทธ๋ฐ ๋ค์ ํ์ํ BitBucket ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
* ์ตํ์ ์๋จ์ผ๋ก ๋ธ๋ผ์ฐ์ ์บ์๋ ์ง์ฐ์ญ์์ค.
์ด์ AppCenter๋ก ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๋น๋ ์น์ ์ผ๋ก ์ด๋ํ์ฌ BitBucket ๊ณ์ ์ฐ๊ฒฐ ๋๊ธฐ๋ฅผ ํด๋ฆญํ์ธ์.
์ด์ ๊ณ์ ์ ์ฐ๊ฒฐ์ด ํด์ ๋๋ฉด AppCenter๋ฅผ ๋ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด์ ์ํ๋ ๊ณ์ ์ผ๋ก ์ด๋ํ์ธ์.
'eval'์ ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น์ผ๋ก ์ธ์๋์ง ์์ต๋๋ค.
๋ช ๋ น ๋์ ์ฌ์ฉํฉ๋๋ค.
- eval $(ssh-agent -s)
ํ:
- ssh-agent
์ด๋ค ๊ฒฝ์ฐ์๋ C:Program FilesGitusrbinssh-agent.exe์ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋ฌ๋๊ฐ ์คํ ์ค์ธ ๋จธ์ ์ ์์คํ ๋ณ์์ ์ด ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
AppCenter ๋น๋๊ฐ ์ค๋๋ bitBucket ์ ์ฅ์์์ ํ๋ก์ ํธ์ ๋ํ ๋น๋๋ฅผ ์์ํ๋ ค๊ณ ํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ๊ณ์ ์ผ๋ก ์์ ์ ํ๋ค๊ฐ ๋ฌธ์ ๊ฐ ์๊ฒผ์ต๋๋ค. ์บ์๋ฅผ ์ง์ฐ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ถ์ฒ : habr.com