2016-06-20 2 views
0

gerrit 제출이 발생한 후 작업이 트리거됩니다. 이 작업은 새 버전을 출시합니다. 즉, 버전을 높이고 새 전쟁 유물을 만들기 위해 목표를 실행합니다. 내가 직면 한 문제는 내가 3 개의 변경 사항을 연속적으로 제출하면 3 개 모두가 jenkins 작업을 시작한다는 것입니다. 첫 번째 커밋이 제출되면 프로젝트 버전은 v1.2.3이라고 가정 해 보겠습니다.새로운 gerrit 이벤트를 기반으로 Jenkins 작업을 중단하는 방법이 있습니까?

o---------x----o----o 
1:v1.2.3 J 2 3 

첫 번째 커밋이 병합되면 Jenkins는 해당 분기에서 해당 커밋 중 새 버전을 릴리스하기 시작합니다. 그런 다음 2 개의 커밋이 추가됩니다. 젠킨스는 버전을 릴리스하고 릴리스를 태그 지정하지만 완료는 커밋을 벗어 났기 때문에 커밋되지 않습니다. 1.

o----------o----------o 
1:v1.2.3 2:v1.2.4 3 
\ 
    \___ v1.2.4 + tag:v1.2.4 

태그가 시스템에 있지만 다른 두 커밋의 경우 새 버전이 거의 존재하지 않습니다. 그런 다음 v.1.2.3을 기준으로 태그를 업데이트하고 태그를 추가하려고 시도하면 1.2.4 태그가 있고 프로세스가 실패합니다.

위의 프로세스를 변경하여 동일한 분기에서 새로운 커밋을 제출 한 후 초기 빌드를 중단하거나 중단하는 방법이 있습니까?

답변

0

"git tag --force"를 사용하여 태그를 만들어야합니다.

-f, --force 
      Replace an existing tag with the given name (instead of failing) 

또는 젠킨스에 Git Plugin의 GitPublisher 기능을 사용합니다.

관련 문제