2012-04-12 2 views
2

Maven-Release-Plugin으로 Java 프로젝트를 릴리스하기 위해 Jenkins-Job을 구성하려고합니다.
Release를 이전 주 버전과 호환되지 않는 것으로 표시하는 데 사용하는 주 버전이 현재 릴리스가 이전 버전과 호환되지 않는 경우 변경됩니다.Jenkins : 단위 테스트를 사용하여 Maven-Release의 자동 버전 확인

예 :

마지막 릴리스는 라는 이름의 클래스를 포함 버전 1.9.5했다.
현재 릴리스이 클래스는 제거되었습니다.
사용자는 현재 릴리스 버전을 1.9.6으로 지정하고 Jenkins-Job을 시작합니다.

릴리스는 현재 주요 버전은 API가 호환되고 이후 2하지 1 될 것으로 예상된다하는 사용자를 말해야한다.

이전 릴리스의 단위 테스트를 사용하여 현재 릴리스의 코드를 테스트 할 생각이었습니다. 일부 API가 호환되지 않는 경우 컴파일 또는 테스트 중에 이전 릴리스의 유닛 테스트가 실패해야합니다 (해당 코드에 대한 유닛 테스트가 있다고 가정).

내 접근 방식은 별도의 프로젝트에서 테스트를 유지하고 VCS에서 두 가지 버전을 확인해야합니다.

Jenkins-Plugin에 대해 알고 있거나 API가 두 가지 주요 버전간에 호환되지 않는지 확인하는 방법에 대해 알고 계신가요?

답변

2

API에 대한 이해가 없으므로 API 호환성 테스트와 관련하여 제안 할 수 없습니다. 젠킨스/메이븐 전면에

, 난 당신이

"다른 프로젝트에 트리거 매개 변수 빌드 '라는 게시물 구축 작업 옵션을 사용하여 테스트'작업의 다운 스트림 작업으로 실제 릴리스 빌드를 실행 제안 이 기능을 사용하면이 작업의 결과에 따라 다른 매개 변수로 다운 스트림 작업을 트리거 할 수 있습니다. 나는. 전체 테스트 스위트가 통과 된 경우, 마이너 릴리스 빌드를 트리거하고 그 반대의 경우도 마찬가지입니다.

+0

좋은 소리입니다. 나는 주말에 한번 시도해 볼게. –

1

젠킨스 또는 릴리스 플러그인을 사용하는 데는 아무런 문제가 없다고 생각합니다. 몇 번이나 메이저 릴리스를 할 예정입니까?

단위 테스트를 다른 프로젝트로 분리하는 것이 좋습니다. 이전에 릴리스 된 -SNAPSHOT 버전에 대한 테스트를 실행하십시오. 통과하면 괜찮아. 그렇지 않으면 주 버전 번호를 지정하십시오.

+0

나는 릴리스 수행하려면 다음 단계를 생각하고 : 를 - VCS를 의 새 복사본을 체크 아웃 - 체크 아웃 장치 - 테스트 이전 릴리스 의 - - 실행 이전 장치 - 테스트 현재 코드 및 실행 단위 - 테스트 구축 - 올바른 버전의 VCS 태그를 붙이십시오. - 다음 스냅 샷 버전을 릴리스하고 현재 버전으로 업데이트하십시오. 우리는 현재 및 다음 릴리스 버전 만 제공하는 Job/Tool이 하나 뿐이라면 더 쉬울 수 없습니까? –

+0

네, 도구로 이것을하는 것이 더 쉽습니다. 아마도 이전 버전의 단위 테스트와 결합 된 http://mojo.codehaus.org/versions-maven-plugin/use-next-releases-mojo.html을 사용할 수 있습니까? – artbristol

관련 문제