지금 blogsyncer를 개발하는 데 소스관리 시스템으로 github를 사용하고, 배포시스템으로 bamboo를 사용하고자 한다.
node.js로 개발하기 때문에 가장 적합한 서비스 플랫폼으로 heroku를 선택했다.
bamboo에서는 artifact를 만들고 그것을 업로드 하는 개념인데, 우선 node.js는 빌드 개념이 없다는 거 그리고 heroku의 경우에는 git으로 업데이트 된다는 것 때문에 헤맷습니다.
배포를 하기 위해서는 먼저 빌드를 해야 합니다. 저는 코드를 가지고 와서, mocha로 유닛 테스트 하는 것으로 build plan을 잡았습니다.
빌드를 완성하면 릴리즈를 만들 수 있고, 그걸을 배포하는 형태로 이루어집니다.
빌드 생성
Create에서 Create a new plan를 선택한다.
github의 계정과 패스워드를 입력하면 사용할 저장소를 선택할 수 있다.
서버 설정
Build Task는 source code check out, npm install, mocha 실행, parse mocha results 하면 mocha에 test결과가 bamboo에 등록된다.
우선 bamboo가 설치되어 있는 서버에 npm과 node.js를 설치해야 한다.
이거 mocha-bamboo-reporter를 설치해야 한다.
이거는 npm으로 간단히 설치할 수 있다.
$npm install -g mocha-bamboo-reporter
이제 nodejs project에서 “mocha -R mocha-bamboo-reporter”라고 실행하면 mocha.json이 만들어 진다.
Bamboo 설정
Node.js를 사용하기 위해서는 plugin으로 “Bamboo Node.js Support”를 설치해야 한다.
Tasks 설정
빌드 생성에서 “Configure tasks”를 선택하면 Task를 등록하는 화면이 나온다.
Source Code Checkout은 이미 되어 있기 때문에 npm install과 mocha, parse mocha results를 하면 된다.
“Add task”를 선택하고 task types에서 npm 검색하여 선택한다. executable에 npm을 등록하고, command에 install만 추가 하면 된다.
mocha에 경우 task types를 command로 선택하고, executable에 mocha, argument에 -R mocha-bamboo-reporter 로 적어준다.
Parse Mocha results는 그냥 task types에 검색하여 추가만 하면 된다.
빌드를 하면 성공 여부가 나오고, tests에 보면 등록된 unitest에 대한 결과가 나온다.
Artifacts 설정
배포를 하기 위해서는 artifacts를 만들어야 한다. Configure Plan으로 간다. 거기서 job를 선택하면 tasks tab과 함께 artifacts가 있다.
지금 만드는 방법이 삽질을 통해 동작하는 방법을 찾은 것이지 좋은 방법이 아닐 수 있다. ;;
heroku의 경우에는 git으로 push해야 하기 때문에 사실 github에 등록된 code를 그대로 등록하면 된다.
그런데 copy pattern에서 기본적으로 .git폴더가 제외되어 있기 때문에 따로 정의해야 한다.
“Create definition”을 선택하여 두 개를 작성하자.
주의 할 것은 꼭 shared를 선택해줘야 배포시에 전달된다.
이제 새로 빌드 하면 빌드 결과에서 만들어진 Artifacts를 확인할 수 있다.
Deployment project 만들기
배포 정책을 만든 후에는 build를 하게 되면 release를 만들 수 있고, 그 release를 가지고 배포 할 수 있는데, release를 설정하는 것은 잘 기억나지 않는다. ;;
어째든 Create deployment project를 하게 되면 배포 설정하는 화면 나온다. 이름과 배포시에 사용할 build plan을 설정한다.
이제 환결 설정을 해야 한다. 아래의 화면에서 add envirement를 하면 이름과 함께 task를 구성할 수 있다.
기본적으로 “clean working directory task”와 “artifact download”가 있는데 artifact download에 “copy code”와 “copy git” 두개를 등록해야 한다.
그리고 command에 push code를 추가 해야 하는데, 이것이 정상 동작하기 위해서는 우선 서버에 heroku toolbelt가 설치되어 있어야 한다.
Heroku Server설정
Heroku dev center를 참고하여 heroku toolbelt를 설치하고 로그인 한다.
$ heroku login
Enter your Heroku credentials.
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub
github에서 code를 가지고 온다 다음에 push를 해보면 동작 확인 할 수 있다.
git push userid@heroku.com:application_name.git master
정상으로 올라갔다면 activity에서 확인 할 수 있다.
이제 환경 설정이 끝났다면, deploy 하면 build plan과 release을 선택하여 배포할 수 있다. release를 하기 위해서도 몇가지 해야 하는데 어렵지 않고 기억이 안나는 관계로 생략한다. ;;
참고