기본 콘텐츠로 건너뛰기

글

라벨이 Build인 게시물 표시

[Jenkins] Build with Parameter

고객사에서 프로그램을 외부에서 사용해야 하는데 프로그램 유출이 우려되어 보안 기능을 적용해달라고 합니다. 고객사에서 제시한 기능은 다음과 같습니다. 프로세스 체크(특정 프로세스가 돌아가고 있는지 확인) 라이선스 키 체크 만료 기간 설정 첫 번째는 요새 기업에서는 보안 프로그램이 돌아가고 있기 때문에 그걸 체크해달라는 겁니다. 두, 세 번째는 JWT를 사용하여 기능을 구현하였습니다. 이제 Jenkins를 이용하여 보안 기능이 적용된 설치 파일을 만들어야 합니다. 참고로 보안 기능을 위해 git에 새로운 브랜치를 만들었습니다. 따라서 빌드할 때 브랜치를 선택해야 합니다. Jenkins의 Build with Parameter 플러그인을 이용하면 빌드할 때 브랜치를 선택할 수 있습니다. 다음과 같이 Job에 매개변수를 추가합니다. 브랜치 이름을 선택할 수 있도록 선택 파라미터로 2개의 브랜치 이름을 추가하였습니다. Windows batch command에서는 %Parameter Name% 형식으로 사용할 수 있습니다. [소스 코드 관리] 항목에 사용자가 선택한 브랜치 이름을 적용합니다. 이제 빌드 후 메일 통보에 선택한 브랜치에 따라 설치 파일 이름을 다르게 나타나도록 합니다. Email Extension에 설치 파일 이름을 넘기기 위해 Environment variables through a file 플러그인을 사용하였습니다. PowerShell을 이용하여 propfile에 환경 변수를 쓰면 됩니다. BUILD_NAME, OUTPUT_FILE_NAME 두 개를 저장하였습니다. 환경 변수를 서로 다른 줄에 저장하기 위해 `r`n 을 넣어 줄 바꿈을 하였습니다. Out-File -FilePath .\propfile -InputObject "BUILD_NAME=$version`r`nOUTPUT_FILE_NAME=$env:BRANCH" -Encoding ASCII Email Exte...

BuildAssist

일일 빌드를 위한 배치 파일을 보다 쉽게 만들기 위한 간단한 프로그램입니다. 컴파일러 파일 설정 : 커맨드 라인상에서 컴파일을 위한 프로그램을 각각 VC6.0 , .NET 2003 , VB6.0에 대해서 설정을 합니다. 패키지 파일 : 인스톨러 프로그램을 설정합니다. NSIS의 경우 : makensis.exe Window Installer의 경우 : DEVENV.EXE 패키지 파일을 설정합니다. 결과 파일을 저장할 폴더 : 컴파일 결과를 저장할 폴더를 설정합니다. 빌드할 프로젝트들... : 빌드할 프로젝트들을 설정합니다. Compiler : < VC6.0 , NET 2003 , VB6.0 > 중 하나 선택 Mode     : < Release  , Debug > 중 하나 선택 Project   : 프로젝트 파일 선택 OK 버튼 : 저장할 배치 파일 이름을 설정합니다. 첨부 파일

일일 빌드 수행하기

우선 아래의 배치파일을 이용해서 빌더시의 날짜와 시간을 구합니다. @ECHO OFF @TITLE Backing up source safe databases FOR /F "tokens=2-4 delims=/ " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k FOR /F "tokens=1-3 delims=: " %%i IN ('time /t') DO SET TIME=%%i-%%j-%%k SET DATETIME=%DATE%-%TIME% 출처 : http://www.codeproject.com/tips/autovssbackup.asp 배치파일로 안되는게 없구만... 그 다음으로 빌드용 배치파일을 예를 들어 아래와 같이 작성합니다. call datetime.bat VC6.0일 경우 : msdev "Admin\Admin.dsw" /MAKE "Admin - Win32 Release" /REBUILD >> "Batch_Build_Result\Admin(%datetime%).log" 여러가지 빌드 옵션들: Win32 Debug Win32 Unicode Debug Win32 Release MinSize Win32 Release MinDependency Win32 Unicode Release MinSize Win32 Unicode Release MinDependency .NET 2003일 경우 : SET DEVENV="C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.exe" %DEVENV% /rebuild release ...