travis-ci

들어가면서

사실 CI Tool은 그동안 쓸 일이 많지 않았다. 그마저도 직접 쓴 적은 없고, Openstack 관련해서 Software maestro에서 1차 팀 프로젝트를 진행할 때 옆에서 팀원이 Jenkins를 사용하는 것을 본 것이 전부이다. 현재 맡은 업무가 프론트쪽에 가까워서 시스템 쪽으로 따로 공부할 일도 없지만, 오픈소스 프로젝트들을 보면 무조건 CI를 사용하고 있고, Test coverage system 또한 갖추어 놓았다. 어차피 이번 해커톤에 나가서 Auto Deployment 때문에라도 공부할 거 빨리 공부하는 게 좋다고 생각해서 포스팅을 작성한다.

CI 란?

TravisCI 우선 CI란 Continuos Intergration의 줄임말이다.

Travis 란?

Travis

Getting started

모든 개발 Document에는 Getting started가 있다. 천천히 따라해보자. Travis CI Getting started 문서를 읽다 보니 링크를 하나 더 발견했다. Travis CI for Complete Beginners 완전 초보자를 위한 문서 위 문서를 번역하면 다음과 같다.

  1. Test용 PHP Repository 를 Folk한다
  2. https://travis-ci.org/auth에서 github계정으로 회원가입을 하고 Travis에게 권한을 준다.
  3. https://travis-ci.org/profile/yoohoogun114에서 아까 folk한 repo를 선택한다.
  4. 자신이 Folk한 Repo를 clone한다. ($ git clone 자신의리포주소)
  5. Clone한 폴더에서 vi .travis.yml.travis.yml 파일의 내용을 본다.

    language: php
    php:
  6. 5.5
  7. 5.4
  8. hhvm script: phpunit Test.php

    PHP 5.5버전, 5.4버전, [HHVM](http://hhvm.com/)(테스트 오픈소스) 이 적혀있고, 마지막 라인에는 Unit Test 파일이 적혀있다.
    <br/>

vi NewUser.txt 라는 명령어로 텍스트 파일을 만들고 자신의 이름을 적은 후 저장한다.

그다음으로 다음 명령어를 실행하여 커밋하고, 푸시한다.

$ git add -A
$ git commit -m 'Testing Travis CI'
$ git push

build status 그러면 여기서 빌드 상태를 볼 수 있고, 빌드가 완료(성공, 실패)하면 메일이 날아간다. fail 처음 빌드는 무조건 실패한다.

왜냐하면, 테스트 코드가 무조건 실패하도록 적혀있기 때문이다. 우리에게 시작하자마자 실패를 안겨주는 Travis 팀

vi Test.php 로 테스트 코드를 수정해보자. 테스트 라인을 $this->assertEquals(1+1,2); 이렇게 고치면 된다. 아래는 완성된 코드

<?php

class Test extends PHPUnit_Framework_TestCase
{
 public function testOnePlusOne() {
 $this->assertEquals(1+1,2);
 }
}

?>

assertEquals, $this 이런 문법은 php 문법이기에, 이 포스팅에서는 중요하지 않다. 단지 ‘php에서는 저렇게 테스트코드를 작성하는구나!’ 라는 정도로 넘어가면 된다.

똑똑한 우리는 무조건 성공하는 테스트 코드를 작성하였다. 다시 commit을하자.

$ git add -A
$ git commit -m 'Testing Travis CI: fixing the build'
$ git push

build status 다시 빌드 상태를 보면 다음과 같이 성공한다. 우리는 반드시 이긴다.

success

마치면서

우리는 CI가 무엇인지, Travis가 무엇인지, Travis가 우리에게 무엇을 해줄 수 있는지 알아보았다. 이제는 자신이 필요한 언어로, Travis를 어떻게 상용하는지 알아보자. 글쓴이는 주력 언어가 Javascript이므로 Javascript-Travis를 참조하도록 하겠다. 다음 포스팅은 Javascript Travis로 이어진다.


Philographer
Written by@Philographer
Fail Fast, Learn Faster

GitHublinkedInFacebook