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