현재 빌드 프로세스CI (Hudson) 활동을 기존 자동화 된 빌드 프로세스 (phing, svn)에 동기화하는 방법은 무엇입니까?
우리는 현재 라이브 전에, 스테이징 환경에 코드를 배포 할 수 Phing을 사용하는 개발자 (2 ~ 4 명 프로젝트에 따라 다름)의 작은 팀이야. 우리는 SVN 저장소에 코드를 유지합니다. 여기서 트렁크는 현재 활성화 된 개발을 유지하고 테스트 할 분기를 만들고 (성공하는 경우) 태깅 환경으로 태그를 지정하고 내 보낸 분기를 만듭니다. 모든 것이 잘된다면 우리는 결국 프로덕션 서버에 배포합니다. 작업은 고도로 자동화되어 있지만 사용자의 개입으로 항상 트리거됩니다.
의심 이제 우리는 그 과정에서 (허드슨) 지속적인 통합을 소개하고 싶습니다
; 안타깝게도 활동 동기화에 대해 몇 가지 의문점이 있습니다. CI가 빌드 프로세스를 방해하고 특정 문제를 야기 할 수 있기 때문입니다.
, 우리가 "통합"에 대한 2 가지 경우를 참조 자동화 된 CI주기가 자동으로 실행 행위의 특정 주파수를 가지고 있음을 고려할 때, 자신의 문제와 각각 :
이케이스 A는 각 CI주기가 생산하는 새 이름 브랜치; 우리는 과 같은 이름을 수동으로 사용합니다 (지금은 phing을 통해) 코드를 SVN에서 env로 내보내십시오. 여기서 볼 수있는 문제는 (특정 대응책이 인 경우 - IE 삭제) 분기 번호입니다. 은 쉽게 제어 할 수 없으므로 ( 은 우리가 자주 커밋한다고 가정합니다. 따라서 에는 새로운 빌드/분기마다 N 분).
사례 B : 각 CI주기는 우리가 수동으로 이 준비에 수출하기로 결정 만 고유 한 이름으로 태그가 '현재'라는 이름의 새 지점을 생성; 현재 현재 분기는 어떤 경우이든 다음 주기가 시작되면 이 삭제됩니다. 우리가 여기 을 볼 문제는 새로운주기가 I 이후,/사람이 태그 반면에 를 걷어차 내가 너무 비관적이야 이렇게 준비 일치하지 않는 빌드를 만드는 (하지만 어쩌면 여기 에 '현재' 분기를 수출 할 수 있다는 것입니다 고백 SVN 이 이에 대해 내장 된 보호 기능을 제공하는지 여부를 알지 못합니다. ).
은 비슷한 경험을 가진 사람은 주제에 우리에게 몇 가지 힌트를 줄 너무 친절 될 수 있다면 위에서 설명 된 방법 중 어느 것도 완전히 우리에 부합 하하지 보이는 때문에 나는 궁금했다되고.
전체 사진에서 완전히 중단 된 중요한 것이 있습니까? 귀하의 도움에 감사드립니다 (&)!
답장을 보내 주셔서 감사합니다. Ritesh. 우리의 문제는 사실 트렁크에서 변경이 일어 났을 때 허드슨을 방아쇠를 당기는 것과는 조금 다릅니다 (이미 주제에 관한 글을 보았습니다). 우리의 관심사는 실제로 다음 분기 (예 : 트렁크 코드가 모든 테스트를 통과 한 경우 마지막 빌드 사이클 동안 허드슨에 의해 자동으로 생성 된) CURRENT 분기가 다음 자동 허드슨 빌드 때문에 일관성이없는 상황을 피하는 반면 다른 누군가는 (CURRENT 분기) 준비 준비. 기본적으로 CI와 준비 단계로의 수동 이동 간의 동기화 문제입니다. 그런 문제에 직면 한 (그리고 해결 된) 사람이 있습니까? – maraspin
그냥 제안 : 당신은 CI를 할 다른 지점을 사용하는 것. hudson에서 코드의 어떤 지점에서 빌드를 실행하도록 지정할 수 있습니다. 연속적인 통합을 위해 별도의 분기를 사용하고 코드를 커밋하기 위해 별도의 분기를 사용할 수 있습니다. –