Bamboo의 빌드결과를 LED 로 확인하고 싶으신가요?

게스트 포스트: Bamboo and LEDs로
마스터를 깨끗하게 관리하기


 이 글은 Jut 사의 growth hacker이자  Atlassian의 전() 직원이며 아마도 지구 상에서 가장 빠른 사나이일 David Cook의 게스트 블로그 포스트에서 가져온 것입니다.
몇 달전 저희는 Bamboo의 자동화된 빌드에 문제가 있음을 알게 되었습니다. 마스터에 국한된 테스트를 실시했고, 개발자들은 때때로 부분적으로 통과한 브랜치에 통합하기도 했으나 마스터에서 빌드실패되는 결과를 초래하였습니다.
그래서 다른 개발자들은 빌드실패 시 마스터에 통합하곤 했는데, 이는 빌드의 고장 원인을 바로 확인하기 어렵게 만들었습니다. 결국, 사람들이 통합 전에는 마스터의 상태를 확인하지 않는다는 것을 깨달았습니다. 그것은 꽤 성가신 일이었으니까요.
두 가지 문제가 있었습니다: 마스터가 너무 자주 빌드실패 된는 것과 사용자들이 빌드실패 사실을 발견하지 못했던 것입니다. 데이터 광인 저는 후자의 문제에 몰두했습니다. 저희는 마스터의 상태와 소통할 훌륭한 방법을 찾지 못했었습니다. 이제, 대부분의 사람들이 월보드를 정보 송수신기로 사용하고 있습니다. 그러나 저는 더 간단하고 더 멋진 해결 방안을 제시할 수 있다고 생각했고, 그것이 바로 LEDs 입니다.

LEDs는 새로운 월보드입니다

월보드는 TV로 보는 대시보드일 뿐입니다. 항상 켜져 있고 항상 볼 수 있기 때문에, 월보드는 정보를 전달하는 훌륭한 방법입니다.
그러나 월보드와 대시보드가 정보를 보여주는 유일한 방법은 아닙니다. 여러분이 주고받고자 하는 데이터가 무엇인가에 따라, LEDs가 훨씬 더 적합할 수 있습니다. 
저 는 마스터의 빌드 상태를 보여주기 위해 LED 한 줄을 사무실의 중앙부에 설치했습니다.
마스터 빌드 중 하나라도 실패하면, 전체 LED가 붉게 변합니다. 만약 모두 성공하면 LED는 녹색이 됩니다.
개발자들이 브랜치를 마스터에 통합하기 전에 해야할 일은 단지 LED 줄이 무슨 색인지 확인하는 것 뿐입니다. 더 이상 간단할 순 없죠.

LED 정보 생성기 구성하기

저는 여가시간에 PixelPusher와 LED strips을 가지고 놀곤 했고 이것들이 어딘가 매우 쓸모 있으리가 판단했습니다. PixelPusher는 Processing과 자바 기반 언어, 그리고 시각 자료를 만드는 개발 환경을 사용해 각 LED를 개별적으로 통제하는 작업을 비교적 간단하게 만들어 줍니다. 그러나, 이 프로그램을 저희의 머리 없는 서버에 적용하려면 Processing을 사용할 수 없었기 때문에, 코드는 순수한 자바입니다. 
저는 Bamboo의 API를 hit하고 각 마스터 빌드의 상태를 확인하기 위해 Python 스크립트를 작성했습니다. 크론이 이 스크립트를 매 2분마다 실행합니다.
만약 빌드 중 하나가 실패하면,  “Failed”라고 텍스트 파일에 표시됩니다.
성공하면, 파일에 “Successful”이라고 표시됩니다. 이 파일은 저희 closet의 자바 프로그램에 의해 매 분 확인되고, 파일의 내용에 근거해 LEDs의 색깔이 변합니다.
이것은 다른 빌드나 다른 브랜치를 만드는 것으로 쉽게 범위를 넓힐 수 있습니다. 예를 들자면, LED 줄을 반으로 나눠 한 쪽은 마스터를, 다른 한 쪽은 스테이징을 나타내게 합니다.
저희는 LEDs를 다른 종류의 정보를 보여주는데도 사용하고 있습니다. 저희가 또 어떤 용도를 찾아낼지 계속 지켜봐 주세요! 
이 작업에 관심이 있으시다면, 여기에서 코드를 확인해 보세요.

Icon

Sarah Goff-Dupont 는

저는 블로그 작성이 "중요한 일"이 되기 전부터 소프트웨어 팀에서 일해 왔습니다. 애자일, 자동화, 그리고/또는 Atlassian에 대해 글을 쓰지 않을 때는 동시대의 소설을 읽고, 크로스 핏을 하거나, 마루 위에서 제 아이들과 뒹굴기도 한답니다. 트위터에서 저를 찾아보세요! @DevToolSuperFan

댓글

이 블로그의 인기 게시물

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요