Jenkins와 Github를 연결하는 Webhook 및 SCM 폴링

2636 단어 JenkinsWebhookGitHub

Jenkins와 Github를 협업



Jenkins와 Github를 연계시키는 수단으로 Webhook과 SCM 폴링의 두 가지가 있다고 생각하지만 차이점을 정리해 보았습니다. 이해를 깊게하기 위해 우선 예비 지식을 아래에 나열합니다.

Jenkins란?



Java로 작성된 오픈 소스 CI 도구.

CI란?



Continuous Integration(계속 통합). 앱 개발 시 품질 개선 및 납기 단축을 위한 습관.

습관을 이해하기 어렵기 때문에 더 좁게 말하면



빌드나 테스트를 자주 계속해 실시하는 것으로, 버그를 조기에 발견해, 개발의 효율·납기의 단축을 실현시키기 위한 수법.
(빌드 : 컴파일 ~ 라이브러리 종속 해결 ~ 패키징과 같은 소스 코드에서 릴리스/배포 가능한 모듈을 작성하기까지의 프로세스.)

수법이나 이미지하기 어렵기 때문에 좀 더 구체적으로 말하면



시간 (몇 시간에 한 번) 또는 트리거 (Github에서 끌어 오기 요청이 만들어지거나 커밋되면)를 계기로 빌드 환경에 대상 리포지토리의 분기의 소스를 clone 해, 빌드를 실행한다 이렇게 Jenkins(CI 툴)로 설정해 두고, 수동이 아니라 자동으로 빌드를 계속적으로 실시하는 것.

어떠한 트리거로 빌드를 실행하는 경우 Jenkins와 Github를 함께 사용해야합니다.
  • Github에 Webhook을 곱합니다.
  • Github에 대해 SCM 폴링을 수행합니다.

  • 의 2 패턴이 있습니다.

    (여기에서 본제) Webhook과 SCM 폴링은 어떻게 다른가?



    Webhook이란?



    웹 서비스 (이번에는 Github)에 던지는 URL (Jenkins의 URL)을 지정하여 POST 요청을 던지는 구조.
    Github에서 끌어오기 요청이 생성되었거나 원격으로 푸시되었음을 트리거하여 Github에서 Jenkins에 POST 요청을 던집니다.
    Github의 여기에서 설정하는 사람이군요.


    SCM 폴링이란?



    원래 SCM이란?



    Software Configuration Management(소프트웨어 구성 관리).
    Git이란 SVN이라든가 이것을 실현시키기 위한 툴.

    원래 폴링이란



    복수의 컴퓨터가 접속되어 있는 네트워크로 액세스의 경합을 피하거나, 준비가 되어 있는지, 사활 감시의 의미도 담아, 송신 요구가 없는지 정기적으로 문의를 실시하는 통신 방식. (본래의 의미)

    근거로 SCM 폴링이란?



    Jenkins에서 Github에 정기적으로 문의하는 방식. (그래서 너무 많이하면 Github에 부하가 걸립니다)

    (+α) Jenkins에서 SCM 폴링 설정 방법



    프로젝트 > 설정 > 빌드 트리거에서 설정할 수 있습니다.


    이러한 플러그인을 사용하면 폴링을 즉시 실행할 수 있는 것 같습니다.
    htps : // 우우키. 지킨킨 s. 이오 / ぢ sp y / 지 킨 킨 S / 팝 SCM + P ㅅ

    요약



    Jenkins와 Github를 연결하는 방법으로 Webhook과 SCM 폴링의 두 가지가 있습니다.
  • Webhook 는 Github 발신으로 빌드의 계기가 되는 POST 리퀘스트를 Jenkins 에 보내 주는 구조.
  • SCM 폴링은 Jenkins 발신으로 빌드의 계기가 되는 Github 에의 문의를 실시하는 구조.

  • 라고 하는, (Jenkins 로부터 봐) 액티브/패시브의 차이가 있습니다.
    실제로 빌드가 실시되는 환경이 Jenkins이므로, Jenkins의 입장적으로는, Webhook 는 Push형의 통지 같은 것, SCM폴링은 PULL형의 통지 같은 것이라고 이해하면 좋은 것이 아닐까 생각 네.

    좋은 웹페이지 즐겨찾기