Jenkins를 이용해 자동으로 빌드하고, 빌드한 결과물은 Zip으로 압축하여 제공한다.
여기서 빌드 결과물 파일에는 BUILD_NUMBER 값을 이용해 파일명을 만들고 있다.

SET FILENAME=MYSELF_%BUILD_NUMBER%.zip

문제는 저 BUILD_NUMBER 부분인데, 이게 1부터 시작해서 빌드 될 때마다 자동으로 1씩 더해지는 값이다.

그러다보니, File Sort를 해보면, 아래 처럼 될 때가 있다.

MYSELF_1.zip
MYSELF_10.zip
MYSELF_11.zip
MYSELF_2.zip
MYSELF_3.zip
MYSELF_4.zip
MYSELF_5.zip
MYSELF_6.zip
MYSELF_7.zip
MYSELF_8.zip
MYSELF_9.zip

요즘은 운영체제가 좋아지기도 했고, 파일관리도구들도 지능적이여서, 저 숫자부분만 떼서 Sort를 해주기도 하지만, 기본적인 String Sort로 하게되면 저렇게 된다.

방법은 저 파일명의 숫자부분 앞에 "0"을 채우면 된다.

그러니까...

MYSELF_0001.zip
MYSELF_0002.zip
MYSELF_0003.zip
MYSELF_0004.zip
MYSELF_0005.zip
MYSELF_0006.zip
MYSELF_0007.zip
MYSELF_0008.zip
MYSELF_0009.zip
MYSELF_0010.zip
MYSELF_0011.zip

위와 같이 만들 수 있다.

이를 위해서는 Jenkins 빌드 후 파일명 만들 때 다음과 같이 만들면 된다.

SET PADDED_BUILD_NUMBER=000%BUILD_NUMBER%
SET PADDED_BUILD_NUMBER=%PADDED_BUILD_NUMBER:~-4%

SET FILENAME=MYSELF_%PADDED_BUILD_NUMBER%.zip

굳이 설명하자면,

1번째 줄에서는 BUILD_NUMBER라는 값 앞에 "000"을 붙인다.
1이면 0001이든, 951이면 000951 같이 된다.

2번째 줄에서는 뒤에서 4글자만 뽑는다.
0001 이면 0001, 000951 이면 0951 식으로 4글자만 뺀다.

그리고 나머지 줄에서는 그렇게 만든 4글자짜리 BUILD_NUMBER를 이용해, 파일명을 만든 것이다.

핵심은....

:~-4

이다.

%{환경변수 이름}:~{+ 앞에서부터, - 뒤에서 부터}{추출할 갯수}%

 

728x90

+ Recent posts