검색결과 리스트
jenkins에 해당되는 글 1건
- 2017.11.07 GeoIP 자동 업데이트 빌드 프로세스에 추가하기
글
GeoIP 자동 업데이트 빌드 프로세스에 추가하기
GeoIP가 무엇인지 알고 있다는 가정하에 매월 첫 주 목요일에 업데이트되는 해당 테이블을 자동으로 업데이트하는 방법을 알아보자.
운용 중인 프로젝트의 CI를 젠킨스로 구축했다면 서버 빌드 시 아래와 같은 Powershell 스크립트를 추가하면 된다.
참고로 프로젝트에서 GeoIP.dat를 로드해서 룩업 테이블을 만들어 사용하는 경우 .dat 파일을 자동 업데이트하는 방법이다.
#서버를 빌드할 때 자동으로 GeoIP를 업데이트한다.
if ($ENV:JobCommand -eq "ServerBuild")
{
#매월 첫 주 목요일에 업데이트되는 파일을 다운 받는다.
$webclient = New-Object System.Net.WebClient
$sourceUrl = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"
$destinationPath = "$ENV:WORKSPACE\Server\Lib\GeoIp2\GeoIP.dat.gz"
$webclient.DownloadFile($sourceUrl, $destinationPath)
#반디집을 이용하여 압축을 푼다.
[string[]]$array = "bx", "-aoa", "$ENV:WORKSPACE\Server\Lib\GeoIp2\GeoIP.dat.gz"
start-process C:\Bandizip\Bandizip.exe $array
#압축이 풀리기 전에 원본 파일이 삭제되는 것을 방지한다.
wait-event -sourceIdentifier "Bandizip" -timeout 10
#반디집 핸들러가 원본 파일을 물고 있는 것을 풀어준다.
$bz = get-process Bandizip
stop-process -inputobject @bz -force
#원본 파일을 삭제한다.
Remove-Item $destinationPath -Recurse
#압축이 풀린 파일을 svn에 적용한다.
svn commit $ENV:WORKSPACE\Server\Lib\GeoIp2\GeoIP.dat --non-interactive --trust-server-cert --username **** --password **** -m "Build server solution from CI server"
}
설명을 첨부하자면 JobCommand 는 빌드 파라미터이고 서버 빌드를 실행했을 때 웹에서 GeoIP.dat.gz 파일을 다운로드 받아 압축을 풀고 svn으로 서밋하는 간단한 내용이다.
gz 파일은 CI 서버에 반디집을 설치하여 반디집 커맨드 명령어로 압축을 푼다.
RECENT COMMENT