Tech

Bitbucket Pipelines : 아틀라시안의 새로운 빌드 서비스

2016년부터 무료 Private 저장소로 유명한 Bitbucket 에서 새로운 서비스를 개발하고 있다. 이름하여 Bitbucket Pipelines 라는 서비스로 Github의 Travis CI, Codeship 과 같은 CI (Continous Integration) 가 그것이다.

아틀라시안의 CI 서비스 – Bitbucket Pipelines

기존에 팀 크기별로 차등적으로 받았던 유료화 모델이 돈이 크게 안되었는지 써드파티 업체들이 죄다 Github로 몰려가서 뭔가 돌파구가 필요했는지 Bitbucket은 이 서비스를 중심으로 유료화를 강화할 것 같다. 이 글을 쓰고 있는 2017년 3월 말 현재 아틀라시안에서는 “New pricing coming soon…” 이라는 제목으로 가격 정책의 변동을 예고하고 있는데 기존의 팀 크기별로 가격을 차등화 하는 것 외에 빌드 시간 차별화, 그리고 초과 빌드 1000분당 10$ 의 가격을 예고한 상태다. 아마 Pipelines 서비스가 베타 딱지를 뗄 때쯤 가격 정책을 공식화 할 것으로 보인다.

시작

사용법은 의외로 간단하다. 현재 Pipelines 기능은 기본적으로 꺼져있는데, 먼저 이 기능을 활성화 시켜야 한다. 대상 저장소의 왼쪽 아래 메뉴에 Pipelines가 있다. 이 메뉴를 클릭후 나오는 화면에서 Enable Pipelines 버튼을 클릭하면 Pipelines 기능이 활성화된다.

그 다음 저장소의 루트에 bitbucket-pipelines.yml을 만들어야 한다. 해당 파일이 있으면 Pipelines 는 자동으로 yml 파일의 설정값대로 빌드를 수행한다.

맛보기

bitbucket-pipelines.yml 하나를 예를 들어보자.

bitbucket-pipelines.yml
image: mikemanger/python27-mysql
pipelines:
default:
– step:
script:
– echo “Hello”

맨 앞의 image 는 사용할 도커 이미지다. python 2.7 에 MySQL 을 사용할 거라서 dockerhub 에서 해당 이미지를 설정했다. 물론 이미지 사용하지 않아도 된다. 그 밑에 default 는 기본적으로 사용할 세팅인데, 이 default 대신 특정 태그나 브랜치에서만 빌드를 수행하게 설정할 수 있다. 자세한 것은 여기 참조. 그 다음 script 아래 있는 명령어를 수행한다. 많은 개발자가 사용하는 Github의 Travis 와 비교하자면, 특정 도커 이미지를 기반으로 작업하기 때문에 도커를 잘 모르면 좀 어려울 수 있지만, 설정은 전반적으로 크게 어렵지 않다.

코드를 저장소로 Push할 때 bitbucket-pipelines.yml이 코드에 있으면 bitbucket은 자동으로 빌드를 수행한다. 그리고 그 결과가 해당 저장소 첫 페이지에 나타난다.

빌드가 실패할 경우 메일로 이를 알려주지만, Slack 에 연결시켜 놓으면 좀 더 편하다.

제약

아직까지 베타 서비스 중이라 아래와 같은 제약사항이 있다.

  • 빌드당 4메가 메모리
  • 한 번에 빌드할 수 있는 시간은 2시간까지다
  • JIRA와 연동은 안되고 있다.
  • 빌드 결과물이 저장 안된다.
  • 윈도우 어플리케이션은 빌드 할 수 없다. 라고 하지만 iOS, Mac OS X 도 빌드 안된다.
  • 스크립트로 도커 이미지를 빌드할 수 없다.

 

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *