2017-03-24 2 views
3

Git/Gitlab에서 분기가 업데이트 될 때마다 Webhook이 실행되는 방법이 있습니까?Gitlab에서 분기하기위한 Webhooks

개발 워크 플로를 설정하려고합니다. 최초의 아이디어는 각 코딩 단계 (예 : 개발 저장소, 테스트 저장소, 생산 저장소)에 대한 저장소를 만드는 것이 었습니다.

마스터 브랜치가 변경되면 조치가 필요합니다. 예를 들어 개발 저장소가 업데이트되고 개발 코드가 "복제"되면 .exe 파일이 생성되고 테스트 목적으로 파일이 "개발"디렉토리에 배치됩니다.

일단 개발이 잘되면 코드를 "테스트"로 "승격"하십시오. "테스트"가 잘 진행되면 코드를 "프로덕션"으로 승격합니다.

문제는 리포지토리간에 코드를 "승격"할 수있는 방법이 없다는 것입니다. 사용할 수있는 유일한 방법은 하위 분기를 상위 분기와 병합 할 수 있다는 것입니다.

내가 본 모든 예제는 개발 분기, 테스트 분기 및 "생산"분기를 참조하는 것이 실제로 저장소의 마스터 분기입니다.

확인 -이를 수락 할 수 있습니다. 그러나이 경우 개발 브랜치, 테스트 분기를 기반으로하는 테스트 코드 등을 기반으로 개발 코드를 컴파일해야합니다.

이 작업을 수행하려면 Webhook을 실행하여 적절한 조치를 취할 수 있어야합니다. 위의 작업을 수행하기 위해 취해진 것입니다 (그러므로 내 질문을하는 이유).

다시 한 번 - 저장소에서 특정 ~ 브랜치가 변경되면 어떻게 Webhook을 실행할 수 있습니까?

답변

1

특정 지점 ~ 저장소가 변경되면 어떻게 Webhook을 실행할 수 있습니까? 당신이 게시 된 데이터를 보면 issues 1176

과 같은

, 당신은

:ref => "refs/heads/master", 

Webhooks는 페이로드, 스크립트에 POST 요청을 전송 작품이 푸시에 대해 설명합니다.

웹 훅을 듣는 서비스가 필요합니다.

젠킨스 서버를 사용하는 경우 웹 후크를 가리킬 수있는 a Jenkins GitLab plugin "branch filtering"을 가질 수 있습니다.

+0

안녕하세요. 감사합니다. Webhooks 처리를 위해 Jenkins를 사용하는 것이 절대적으로 필요합니까? 젠킨스 (Jenkins)는 사용자 인터페이스가 제대로 작동하려면 여러 플러그인을 요구하는 것 같습니다 (예 : PHP 처리에 필요한 플러그인이 무수히 많습니다). 또한, Jenkins와 함께 일종의 배포 도구를 찾아야하는 배포를하지 않습니다. 필자가 보았던 것에서 PHP의 경우 한 가지 유형의 배포 도구가 작동 할 것이고 Java의 경우 다른 유형이 필요하고 "C/C++"등의 경우에는 세 번째 유형이 필요할 것입니다. –

+0

더 쉽고 빠르지 않고 안전합니다. 일종의 스크립팅 언어를 사용하여 POST 이벤트를 처리 한 다음 처리를 수행하는 데 필요한 쉘 명령을 실행하십시오.Jenkins를 사용하기 위해 구성상의 골칫거리를 겪을 필요가 실제로 없습니다. –

+0

Jenkins는 GitLab 웹 훅을 해석하고 작업을 실행하는 데 단 하나의 플러그인 만 필요합니다. Jenkins에서의 그 직업은 당신이 필요로하는 것을 무엇이든 할 수 있습니다. Jenkins는 직업의 본질이 무엇이든, 직업 스케줄러입니다. – VonC