git 저장소에 병합하기 전에 커밋을 확인하는 대신 빈번한 간격으로 git으로 병합 한 후 커밋을 확인하는 것 같습니다.
우리는 git pull을 git 저장소에서 모든 사용자의 ssh-keys를 제거하는 것 이외의 다른 방법으로 해제 할 수는 없다고 생각합니다. 이것은 실현 가능하지 않습니다. 우리는 git repo에 대한 액세스를 차단하기 위해 Git에서 authorized_keys 파일을 조작 할 수있는 Jenkins 빌드 빌드 단계를 가질 수 있습니다. (작동하는지 모르겠다.)
각 빌드 + 검증에 약 2 시간이 소요되는 동일한 시나리오가 있었으며 각 커밋에 대해이 테스트를 실제로 시행 할 수는 없다. 그러나 우리는이 상황을 관리 할 수있었습니다.
당신이 리트 사용하는 경우
을 대신 젠킨스 리트 트리거 플러그인을 사용하여, 우리는 통합과 검증을 실행할 준비가 모두 승인 및 변경 사항에 대한 전체 리트를 폴링 우리 자신의 스크립트를 가질 수 있습니다 . 확인이 완료되면 해당 작업의 모든 변경 사항이 자동으로 병합됩니다 (Gerrit에 제출 됨). 이렇게하면 병합되는 악의를 피할 수 있습니다.
당신은 리트 사용하지 않는 경우 : 우리는 두 개의 분리 된 지점
을 가질 수
을
- 개발 지점 개발자가 당길 수있는 곳에서 (
- 통합 분기 (모든 개발자는 변경 밀어 경우) 변경 사항)
모든 개발자는 변경 사항을 개발 분기점으로 푸시합니다. 빈번한 간격으로 우리는 개발 분기를 검증하고 검증이 성공할 경우에만 통합 분기로 변경 사항을 푸시 할 수 있습니다.
Jenkins도 GIT 저장소를 관리합니까? 젠장이 젠킨스와 같은 기계에서 실행되고 있습니까? 아마도 Gerrit를 사용하여 공유 GIT 저장소를 관리하는 방법을 살펴보십시오. Jenkins 용 Gerrit 플러그인을 사용하여 각 코드 제출을 자동으로 확인할 수 있습니다. 원하는 워크 플로를 얻는 더 좋은 메커니즘이 될 것입니다. //code.google.com/p/gerrit/ –
아니요, Jenkins는 Gerrit/Git과 같은 컴퓨터에 있지 않습니다. 나는 Gerrit를 그런 식으로 사용하는 것이 무엇을 의미하는지 알고 있지만 Jenkins의 작업은 약 2 시간이 걸리므로 (그리고 더 오래 걸릴 것입니다.) 매 푸시마다 그것을 시작할 수 없습니다. –