사실 CI Tool은 그동안 쓸 일이 많지 않았다. 그마저도 직접 쓴 적은 없고, Openstack 관련해서 Software maestro에서 1차 팀 프로젝트를 진행할 때 옆에서 팀원이 Jenkins를 사용하는 것을 본 것이 전부이다. 현재 맡은 업무가 프론트쪽에 가까워서 시스템 쪽으로 따로 공부할 일도 없지만, 오픈소스 프로젝트들을 보면 무조건 CI를 사용하고 있고, Test coverage system 또한 갖추어 놓았다. 어차피 이번 해커톤에 나가서 Auto Deployment 때문에라도 공부할 거 빨리 공부하는 게 좋다고 생각해서 포스팅을 작성한다.
우선 CI란 Continuos Intergration의 줄임말이다.
모든 개발 Document에는 Getting started가 있다. 천천히 따라해보자.
Travis CI Getting started
문서를 읽다 보니 링크를 하나 더 발견했다. Travis CI for Complete Beginners 완전 초보자를 위한 문서
위 문서를 번역하면 다음과 같다.
Clone한 폴더에서 vi .travis.yml
로 .travis.yml
파일의 내용을 본다.
language: php
php:
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 그러면 여기서 빌드 상태를 볼 수 있고, 빌드가 완료(성공, 실패)하면 메일이 날아간다. 처음 빌드는 무조건 실패한다.
왜냐하면, 테스트 코드가 무조건 실패하도록 적혀있기 때문이다. 우리에게 시작하자마자 실패를 안겨주는 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 다시 빌드 상태를 보면 다음과 같이 성공한다. 우리는 반드시 이긴다.
우리는 CI가 무엇인지, Travis가 무엇인지, Travis가 우리에게 무엇을 해줄 수 있는지 알아보았다. 이제는 자신이 필요한 언어로, Travis를 어떻게 상용하는지 알아보자. 글쓴이는 주력 언어가 Javascript이므로 Javascript-Travis를 참조하도록 하겠다. 다음 포스팅은 Javascript Travis로 이어진다.