brunch

You can make anything
by writing

C.S.Lewis

by 홍진우 Jan 20. 2016

Rails 프로젝트 travis-ci 연동하기

CI (Continuous Integration)은 코드 품질 유지를 위해  팀의 작업내역을 지속적으로 자주 통합하는 프로세스를 말한다. 통합이 늦어지면 그에 따른 비용도 증가하기 때문에, 빠른 통합을 통해서 시스템의 문제를 빠르게 발견하고 해결할 수 있게 된다.


CI를 위해서 중요한 것은 자동화된 빌드와 자동화된 테스트인데 이를 위해 진행 중인 프로젝트에 travis-ci를 통한 테스트 자동화를 구현했다.


travis-ci.org 홈페이지에 Ruby 관련한 가이드는 있으나 Rails 가이드는 없는 것 같아 지금 프로젝트에 적용한 방법을 정리해둔다.




1. travis 설정 파일 만들기


travis-ci를 위해 설정 파일(.travis.yml)을 만들어둔다. travis-ci에서는 이 설정 파일이 있는지 여부로 테스트를 실행할지를 결정하기 때문에 반드시 만들어줘야 한다.


# .travis.yml

language: ruby
rvm:
  - 2.2.0
before_script:
  - cp config/database.yml.travis config/database.yml
  - psql -c 'create database travis_ci_test;' -U postgres


2. 루비 버전 명시하기


.ruby-version 파일에 사용 중인 루비 버전을 명시해준다.


# .ruby-version

2.2.0


3. 데이터베이스 설정하기


travis-ci에서 테스트를 실행할 때 테스트용 데이터베이스를 만들기 때문에 database.yml의 내용이 필요하다. database.yml 파일은 형상관리를 통해 관리하지 않기 때문이기도 하고 실제 서버의 설정 내용과 다르기 때문에 travis-ci용 데이터베이스 설정파일이 필요하다. config/database.yml.travis 라는 파일에 travis를 위한 데이터베이스를 정보를 명시한다.


# config/database.yml.travis

test:
  adapter: postgresql
  database: travis_ci_test
  username: postgres


이 파일은 위의 .travis.yml 파일의 before_script 부분 (아래에 다시 첨부)에 의해서 테스트 전에 database.yml로 복사되어 데이터베이스를 생성하는 데에 쓰인다.


# .travis.yml

...
before_script:
  - cp config/database.yml.travis config/database.yml
  - psql -c 'create database travis_ci_test;' -U postgres


4. travis-ci 연동하기


위의 3파일을 전부 만들었다면 리모트 저장소에 푸쉬하고 https://travis-ci.com 에서 해당 프로젝트를 설정해주면 된다.

매거진의 이전글 postgres 유저 비밀번호 변경
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari