SED는 파일 이름에서 요소를 찾아 델타 값으로 바꿉니다.

SED는 파일 이름에서 요소를 찾아 델타 값으로 바꿉니다.

예제 파일 이름은 Sample-0.0.1-SNAPSHOT.jar(jenkins의 Maven 빌드 결과)입니다.

내 목표는 실패 시 실행되는 쉘 스크립트를 실행하는 것이며 파일 이름에 증분 숫자를 추가하는 것입니다.

그래서 우리는 Sample-0.0.1-1-SNAPSHOT.jar, Sample-0.0.1-2-SNAPSHOT.jar..etc라고 말할 수 있습니다.

(BTW: 파일 이름을 생성하기 위해 Jenkins는 $POM_ARTIFACTID-$POM-VERSION.jar 환경 변수 형식을 사용하여 POM 파일에서 관련 정보를 가져옵니다.)

어떻게든 $POM-VERSION을 사용하여 에코하고 sed를 사용하여 증분 숫자를 추가/바꾸는 것을 생각하고 있습니까?

문제는 실행 방법을 모른다는 것입니다. 따라서 누군가가 이 문제를 알아내도록 도와줄 수 있다면 좋을 것입니다! 또한 더 좋은 아이디어가 있으면 기꺼이 받아들이겠습니다.

답변1

작업공간이 지속적이라고 가정하면 각 빌드 후에 다음 이벤트가 트리거됩니다.

if [ -f counterfile.txt ]; then
  num=$(cat counterfile.txt)
else
  num=0
fi
num=$((num+1))
echo $num>counterfile.txt

filename=$POM_ARTIFACTID-$POM-VERSION.jar
newfilename=echo $filename | sed "s/-SNAPSHOT/-$num-SNAPSHOT/"
mv $filename $newfilename

관련 정보