노무현 대통령 배너
이제 끝이 보이네요. 이번에는 Schedule을 생성합니다.

Schedules 탭으로 이동한후 새로운 Schedule을 추가합니다.
사용자 삽입 이미지

Name : petstore20
Next build version : petstore20-0
Trigger type : manual
Build necessary condition : always
Associated builders : ant 1.6.2
Next build version을 perstore20-0으로 놓게 되면 빌드가 될때마다 -1, -2 로 증가하게 됩니다. Build necessary condition은 원래 형상서버에 변경이 생겼을때만 빌드 하도록 놓는게 기본값(vcsModified or dependencyNewer)입니다만 여기서는 테스트를 위해 항상 빌드하도록 설정합니다.

저장을 하고나면 다음과 같은 결과를 볼 수 있습니다. 저는 테스트를 위해 이미 빌드를 실행했기 때문에 빌드가 성공했다는 파란 동그라미가 나타납니다. 오른쪽 상단의 build manualy를 누르고 [Save]를 누르면 빌드가 실행됩니다. build history 아이콘을 누르면 빌드 결과를 볼 수 있습니다.
사용자 삽입 이미지

전체 4번 빌드가 실행되었고 그중에서 세번 실패하고 1번 성공했군요. Version을 누르면 상세 화면으로 이동합니다.
사용자 삽입 이미지

상세화면에서는 빌드 시작일, 종료일, 빌드에 걸린시간, 빌드 로고, 리비전 로고를 볼 수 있습니다.
사용자 삽입 이미지

간단하게 나마 Luntbuild와 Subversion을 연동해봤습니다.

내용이 간단해서 더 상세하게 다룰 내용이 많이 남은거 같습니다. CVS, Visual Source Safe와 연동한다거나 Maven과 같은 빌더를 이용하는것, 구체적으로 사용되는 시나리오등도 필요할 거 같네요.
틈나는 대로 위와 같은 내용으로 이 포스트를 확장해 가려고 합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
TAG CI, Luntbuild
이번에는 Luntbuild에 Version Control System을 등록하는것에 대해 알아보겠습니다. Luntbuild가 지원하는 Version Control System에는 어떤것들이 있을까요 ?
  • AccuRev
  • Base Clearcase
  • Dynamic Clearcase
  • CVS
  • File System
  • MKS
  • Perforce
  • Star Team
  • Subversion
  • SubversionExe
  • ClearcaseUCM
  • Visual Source Safe
많이 사용하는 형상관리 시스템을 대부분 지원하기 때문에 따로 커스터마이징이 필요없을 정도입니다. (물론 저희회사에서 사용하는 Dimensions은 없습니다. 슬픈 현실이죠. --;)
여기서는 Subversion을 사용하겠습니다.

1.Project 탭에서 해당 프로젝트 이름을 클릭하여 프로젝트를 선택합니다.
사용자 삽입 이미지

2.오른쪽 상단의 Edit 아이콘을 클릭하여 프로젝트 수정화면으로 들어갑니다.
사용자 삽입 이미지

3.Builders탭으로 이동하여 new builder 아이콘을 클릭하여 빌더를 추가합니다.
Luntbuild가 지원하는 builder는 다음과 같습니다. 여기서는 Ant를 사용하겠습니다.
  • Ant
  • Maven
  • Maven2
  • Command
  • Rake
사용자 삽입 이미지

builder type : Ant builder
Name : ant 1.6.2
Command to run Ant : E:\j2ee\devlib\apache-ant-1.6.5\bin\ant.bat
Build script path : /Petstore20/build/build.xml
Build targets : all
Ant는 1.6.2 버전을 사용했습니다. 미리 Ant를 받아서 압축을 풀어놓으셔 하며 그 위치를 명시하면 됩니다. 빌드 스크립트는 테스트용으로 빈 파일을 하나 만들어서 사용했으며 스크립트 위치는 /build 폴더 입니다.

build.xml
<project name="PetStore20 Project" default="all" basedir=".">
    <property file="build.properties" />
    <!-- ready to build (ejb deploy descriptor copy) -->
    <target name="init">
        <regexp />
    </target>
    <target name="all" depends="init">
    </target>
</project>
사용자 삽입 이미지

혹시 이클립스에만 추가하고 Subversion에 Add 하지 않으면 빌드서버가 받을 수 없기 때문에 에러가 발생합니다. 반드시 Add하고 Commit을 해 주어야 합니다.

Build success condition은 Regular Expression으로 빌드결과를 검증할 수 있는 항목입니다. 나중에 자세힌 한번 알아봐야 겠습니다. 사실 빌드가 성공적으로 이루어졌는지 세밀하게 검증하는게 중요한데 유용할 듯 합니다.

저장을 하고나면 아래와 같이 Antbuilder가 추가된것을 확인할 수 있습니다.
사용자 삽입 이미지


크리에이티브 커먼즈 라이선스
Creative Commons License
Luntbuild를 실행하고 웹브라우저를 이용해서 Admin Console에 로그인합니다.
http://localhost:8888/luntbuild/luntbuild-login.html
사용자 삽입 이미지

Luntbuild에 로그인 할 수 있는 계정은 크게 3가지 입니다.
  • System Administrator : 디폴트 정보는 luntbuild/luntbuild
  • 등록된 사용자 : SA가 등록한 사용자
  • 익명 사용자
luntbuild 사용자로 로그인 하게 되면 5개의 탭으로 구성된 화면을 볼 수 있습니다.
사용자 삽입 이미지

  • Builds : 프로젝트 빌드 결과를 보여준다.
  • Projects : 등록된 프로젝트를 보여준다.
  • Users : 등록된 사용자를 보여준다.
  • Properties : 일반적인 프로젝트 설정 정보를 보여준다.
  • Administration : import/export와 같은 관리자 기능을 보여준다.
Projects 탭의 오른쪽 상단의 New Project 아이콘을 이용하여 새로운 프로젝트를 생성합니다.
사용자 삽입 이미지

새로운 프로젝트를 만들기 위해서 다음과 같은 값들을 입력해야 합니다.
  • Name : 프로젝트를 구분해주는 이름, 수정불가
  • Description : 프로젝트 설명
  • Project admins : 'project admin' 권한을 갖는 사용자
  • Project builders : 'project builders' 권한을 갖는 사용자
  • Project viewers : 'project viewers' 권한을 갖는 사용자
  • Notification methods : 이 프로젝트 빌드에 사용할 통지 방법
  • Notification users : 프로젝트 빌드결과를 통지 받게될 사용자
  • Variables : OGNL 표현식을 따르는 변수 정의
  • Log level : 프로젝트 로깅 수준
사용자 삽입 이미지

간단하게 다음 값으로 프로젝트를 생성합니다.
  • Name : petstore
  • Description : PetStore build
  • Notification methods : Email
  • Notification users : ,users who checked in code recently>
성공적으로 프로젝트가 생성되고 나면 Projects 메뉴에서 petstore 프로젝트를 볼 수 있습니다.
사용자 삽입 이미지

다음에는 VCS(Version Control System) adaptors를 생성하는 것부터 살펴보도록 하겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG CI, Luntbuild
Luntbuild의 실행결과는 데이터베이스에 저장하는것이 가능합니다. 굳히 무겁게 DB까지 연동할 필요가 있냐고 이야기 하는 분도 계실듯 합니다. 하지만 빌드결과는 개발관리 측면에서 본다면 유용한 정보가 될 수 있습니다. Luntbuild가 지원하는 DB는 다음과 같습니다.
  • HSQL
  • MySQL
  • PostgreSQL
  • SqlServer
  • Oracle
  • Derby
  • H2
이 정도면 왠만한 데이터베이스는 다 지원한다고 말할 수 있을거 같네요. 이중에서 MySQL만 한번 연동해 보겠습니다.

1.MySQL을 설치합니다.
설치가 어렵지 않으니 그냥 하시면 될거 같구요. 설치하면서 사용자계정,암호,포트번호 등을 기억해 두셔야 합니다. 클라이언트 툴을 하나쯤 사용하시는게 편합니다. 제가 주로 사용하는 툴을 SQLyog 입니다.

2.Luntbuild에서 MySQL 관련 프로퍼티를 수정합니다.
이 설정파일은 \luntbuild-1.5.4.1\web\WEB-INF\jdbc.mysql.properties입니다. 이 파일을 열어서 아래와 같이 수정합니다. 포트나 서버이름은 자신의 MySQL에 따라 다를수 있습니다.
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/luntbuild
hibernate.dialect=org.hibernate.dialect.MySQLDialect
jdbc.username=luntbuild
jdbc.password=luntbuild
3.MySQL에서 luntbuild 데이터베이스를 생성합니다.
SQLyog의 [Tools] > [User Manager] > [Add User] 메[뉴를 이용해서 luntbuild 사용자를 추가합니다. Global 속성은 주지 않아도 됩니다.
사용자 삽입 이미지

[DB] > [Create Database] 메뉴를 이용해서 luntbuild 데이터베이스를 생성합니다.
사용자 삽입 이미지

[Tools] > [User Manager] > [Manage Permissions] 메[뉴를 이용해서 luntbuild 데이터베이스에 대한 권한을 luntbuild 사용자에게 추가합니다.
사용자 삽입 이미지

[DB] > [Import Bach File] 메뉴를 이용해서 luntbuild 데이터베이스에 필요한 테이블을 생성합니다. luntbuild.sql 파일은 \luntbuild\db 폴더밑에 해당 데이터베이스 폴더에 들어있습니다.
사용자 삽입 이미지

그러면 다음처럼 빌드결과를 저장하는데 필요한 테이블이 생성되는것을 확인할 수가 있습니다.
사용자 삽입 이미지

이제 설정은 모두 끝났습니다. 실제로 빌드결과가 데이터베이스에 저장되는 모습은 프로젝트 설정을 완료한후 빌드를 실행해 본 다음에 확인하도록 하겠습니다.

 ps) 다른 데이터베이스와 연동하는 방법은 Luntbuild - Installation Guide를 참고하시기 바랍니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Luntbuild는 가장 많이 사용되는 빌드서버라고 할수 있습니다. 이번에는 이 Luntbuild를 이용해서 서브버전의 형상을 빌드하는것에 대해 알아보겠습니다.
그럴려면 먼저 서브버전이 설치되어 있고 Luntbuild에서 읽어올 레파지터리가 만들어져 있어야 합니다. 이 부분은 제가 이전에 포스팅한 Collabnet Subversion으로 형상서버 꾸미기를 참고하세요.

Luntbuild를 설치하겠습니다. 설치는 단순합니다. http://luntbuild.javaforge.com에 가셔서 Luntbuild를 다운로드 해서 적당한 위치에 압축을 풀면 됩니다. 저는 Luntbuild 1.5.4 버전을 사용하였습니다.
Luntbuild는 웹기반의 애플리케이션이며 두가지 방식으로 사용하는게 가능합니다.:Standalone 방식과 서블릿 컨테이너에 배포하여 사용하는 방식

Standalone방식으로 실행하기 위해서는 \bin 폴더에 있는 luntbuild.bat 파일의 $INSTALL_PATH를 실제로 Luntbuild가 설치된 곳으로 바꿔줘야 합니다.
@echo off

cd /D "$INSTALL_PATH"
if "%1" == "" (
set host="localhost"
) else (
set host="%1"
)
if "%2" == "" (
set port="8080"
) else (
set port="%2"
)

java -jar luntbuild-standalone.jar %host% %port% %3

luntbuild-1.5.4\web\web.xml 파일은 두 방식 모두 이 web.xml 파일을 사용하기 때문에 반드시 수정해 줘야 합니다.
    <context-param>
        <param-name>installDir</param-name>
        <!-- change this for production environment !! -->
        <param-value>$INSTALL_PATH</param-value>

        <description>luntbuild installation directory</description>
    </context-param>
$INSTALL_PATH로 되어있는 부분을 Luntbuild가 설치된 실제위치로 바꿔줍니다.

이제 설치 및 설정이 다 끝났으니 실제로 Luntbuild를 실행해 볼 차례입니다. 먼저 standalone 모드로 실행해 보도록 하겠습니다. 명령 프롬프트창에서 \bin 폴더로 이동하여 다음 명령을 실행합니다.
luntbuild localhost 8888
Luntbuild는 내부에 jetty 웹 서버를 내장하고 있습니다. 위와 같이 실행하면 포트번호 8888로 웹 서비스를 시작 합니다.
사용자 삽입 이미지

Luntbuild를 웹 브라우저에서 실행하면 아래와 같은 관리자 화면을 볼 수 있습니다.
사용자 삽입 이미지

설치와 설정 및 간단한 테스트가 끝났으니 다음에는 본격적으로 Luntbuild를 가지고 Subversion과 연동하는걸 해보도록 하겠습니다.

ps) 이 내용은 Luntbuild - Installation Guide를 참고하여 작성하였습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License