VCS의 병렬 개발/분기가 빌드 아티팩트 저장소 설정 및 QA 출시 방법은 어떻게됩니까?병렬 개발 분기, 아티팩트 저장소 및 QA 릴리즈
우리 회사에서는 병렬 개발 노력을 위해 VCS를 운영하고 있으며 어떤 지점이 어떤 순서로 출하 될지에 대한 경고는 거의하지 않습니다.
버전 번호를 지정하려면 빌드를 가져온 분기를 표시하는 분기 식별자를 배치하고 싶습니다. 모든 그것에 어떤 지점 식별자와 '일반'버전 번호를했을 트렁크에서 빌드 :
trunk: 1.1.0
branch: 1.1.0.MyBranch
branch: 1.1.0.AnotherBranch
원래 나는 지점 당 하나 개의 빌드 유물 저장소, 트렁크에 하나 명의 주 저장소를 가지고 생각했다.
그러나 내 버전 번호 매기기에 분기가 포함되어 있으면 제품에 대한 버전 번호가 잘못 될 수 있습니다 (분기에서 만들고 릴리스하는 경우).
트렁크에서만 해제하는 방법이 있습니까?
또한 지점에서 빌드와는 달리 QA 팀 빌드를 어느 시점에서 트렁크에서 시작해야합니까?
현재 나의 생각은 관리팀에 배포 팀을 할당하고 (출시일로부터 1 주일을 말합니다) 해당 분기를 트렁크에 병합하도록 설득하는 것입니다. 그런 다음 QA는 분기 빌드 대신 트렁크 빌드를 시작하며 분기가 병합 된 개발 팀은 분기가 아닌 트렁크에 직접 버그를 수정합니다.
* UPDATE *
보다 구체적으로는, 내가 VCS에 대한 SVN을 사용하고, 그리고 Artifactory 내 저장소에. 나는 아이비를 의존성 관리에 사용하고 있습니다. 저장소 레이아웃에 Artifactory 도움말 (Repository Layouts)을 보면
:
"a sequence of literals that identifies the base revision part of the artifact
version, excluding any integration information"
"'1.5.10', or in case of an integration revision '1.2-SNAPSHOT' the base revision
is '1.2'"
이와 메이븐과 아이비의 기본 레이아웃이 더 일반적이다 나에게 제안 :
MyRepo
MyLib
1.1.0 (this is the dll from trunk)
-MyLib.dll
1.1.0.MyBranch-SNAPSHOT (dev builds from the "MyBranch" branch)
-MyLib.dll
1.1.0.AnotherBranch-SNAPSHOT (dev builds from the "AnotherBranch" branch)
-MyLib.dll
이인가 Ivy를 사용하기위한 전형적인 repo 레이아웃은 무엇입니까? 나는 아이오의 분기 기능을 사용하여 빌드 시점에 의존성을 repo의 정확한 분기 폴더로 해결해야한다고 생각하겠습니까?
* UPDATE 여기에 2 *
내 현재 Artifactory 구조입니다 :
MySnapshotRepo
CompanyName
CompanyName.MyLib
1.0-SNAPSHOT
MyLib.dll (snapshot builds from the dev branch)
MyReleaseRepo
CompanyName
CompanyName.MyLib
1.0.0
MyLib.dll (release builds from the trunk)
1.0.1
MyLib.dll (release builds from the trunk)
1.0.2
MyLib.dll (release builds from the trunk)
- 가 어떻게 빌드시 특정 REPO에 아이비 지점합니까? 릴리즈의 경우 릴리즈 레포 네임에서 바이너리 만 가져와야합니다. 스냅 샷 빌드의 경우, 스냅 샷 저장소에 바이너리가 표시되면 바이너리를 가져올 수 있습니다. 누락 된 경우 릴리스 리포에서 가져올 수 있습니다. 나는 저장소를 연결하는 방법을 이해하고 있으며, 그것들을 전환하는 방법을 이해하지 못하고있다.
내 IvySettings에 있습니다.xml 파일 내가 가지고있는 것 :
<settings defaultResolver="defaultresolvechain"/>
.. 그러나 나는 기본값을 원하지 않는다. Ivy resolve 명령을 호출 할 때 확인할 해결 자의 체인을 지정하고 싶습니다. 다음과 같은 내용이 있습니다 :
<ivy:resolve transitive="false" resolveMode="snapshot-resolve" conf="compile,test"/>
해결 방법이 잘못 되었나요?
게시 작업에는 비슷한 방식으로 완벽하게 작동하는 "해결 자"속성이 있습니다.
또한 내 특정 예제에서는 여러 Artifactory 스냅 샷 repos에 해당하는 여러 SVN 분기를 가질 수 있습니다. 어떤 레포지를 해결할 것인지를 매개 변수화 할 수 있습니까? 또는 모든 지점의 스냅 샷을 하나의 저장소에 저장하고 Ivy 분기 기능을 사용하는 올바른 방법입니까?
다른 정보가 필요하면 알려주세요.