문제

GitHub에 개인 저장소가 있는 조직이 있습니다.또한 GitHub 플러그인이 설치된 서버의 포트 8080에서 Jenkins가 실행되도록 설정했습니다.소유자 그룹에 있는 jenkins 사용자를 위해 GitHub에 계정을 만들었습니다.

개발 브랜치(또는 마스터 브랜치, 둘 다 작동하지 않는 것 같음)에 변경 사항이 푸시될 때 젠킨스에서 작업을 트리거하려고 합니다.

Jenkins의 GitHub Hook Logs를 보면 Polling이 아직 실행되지 않았다고 나와 있습니다."Jenkins 관리"로 이동하면 GitHub 플러그인을 테스트할 때 내 계정이 확인되었다고 표시됩니다.

이를 구성하는 방법에 대한 통찰력이 있습니까?작업하고 싶은 저장소가 여러 개 있으므로 배포 키가 나에게 해결책이 아닌 것 같습니다.

도움이 되었습니까?

해결책

업데이트:

처럼 크레이그 링거 에서 언급 그의 대답, 당신은 선택할 수 있습니다 Grant READ permissions for /github-webhook GitHub 플러그인 설정 아래의 "Jenkins 구성"에서 인증 없이 웹훅을 호출할 수 있습니다.

또 다른 업데이트: 웹훅은 현재(12월 1일)2014) 조직에서 사용 가능:보다 조직을 위한 WebHooks API.


메모:그만큼 문제 4 ~의 허드슨-github-플러그인 에 대해서:

Last GitHub Push

Polling has not run yet.

그리고 결론은 이랬습니다.

신경쓰지 마세요. 유일하게 누락된 부분은 인터넷 어디에도 문서화되어 있지 않은 github 사용자를 위한 권한 체크박스였습니다.

그렇다면 이것이 Jenkins 사용자와 관련된 권한 문제입니까?

기사 "간편한 Rails3 앱 CI 테스트를 위해 Ubuntu에서 Jenkins-CI 설정"에는 다음 프로세스가 포함됩니다.

CI 시스템을 제한하고 팀 구성원에게 빌드 로그를 사용하거나 볼 수 있는 액세스 권한을 부여하려면 먼저 계정을 만들어야 합니다.

  • 이동 Manage Jenkins > Configure System,
  • 을 체크 해봐 Enable Security 체크박스
  • 아래에 Security Realm, Jenkins의 자체 사용자 데이터베이스를 선택하십시오.
  • 을 체크 해봐 Allow users to sign up 체크박스
  • 아래에 Authorization, 선택하다 Project-based Matrix Authorization Strategy
  • 이름이 admin인 첫 번째 사용자와 GitHub를 사용하여 다른 사용자를 추가합니다(참고:관리자 액세스를 위한 사용자 이름은 admin이어야 합니다) GitHub 명명된 사용자의 경우 전체 읽기 전용 권한을 선택하면 됩니다.나중에 GitHub 후크와 함께 이 사용자를 사용할 것입니다.

메모:위 단계에서 추가한 관리자 및 GitHub 사용자는 사용자를 생성하지 않습니다.그런 다음 동일한 이름을 가진 실제 사용자를 생성해야 합니다.네, 저도 알아요. Jenkins UI가 좀 이상해요.

관리로 이동 Jenkins > Manage Users > Create User.관리자 및 GitHub 사용자를 모두 생성합니다.

Github 웹후크를 사용한 후킹

이제 새 커밋이나 브랜치가 Github에 푸시될 때 자동으로 빌드를 실행하려면 저장소를 설정해야 합니다.

저장소의 후크 페이지로 이동했습니다.예를 들어

github.com/<username>/<project_name>/admin/hooks

아래에 AVAILABLE SERVICE HOOKS > Post-Receive URLs, 추가하다 github:github@your-ci-server.com/github-webhook/.

그만큼 github:github 이전에 생성한 사용자입니다.

그런 다음 Github로 Jenkins를 확인해야 합니다.Jenkins 관리 > 시스템 구성으로 이동하여 GitHub Web Hook에서 Github 사용자 이름과 비밀번호를 추가하고 자격 증명 테스트 버튼을 클릭하여 Github에서 한 번 인증합니다.

다른 팁

현재 버전의 GitHub 플러그인으로 허용되는 답변이 더 이상 필요하지 않습니다.GitHub 플러그인 설정에서 "Jenkins 구성"에서 Grant READ permissions for /github-webhook를 확인할 수 있으므로 WebHook이 인증없이 호출 할 수 있습니다.

이 옵션에 대한 도움말에 설명 된대로 꽤 안전하고 솔직히 "GitHub"로 "GitHub"라는 사용자가 "GitHub"라는 사용자가 "GitHub"라는 사용자가 "GitHub"라는 이름이 "GitHub"라는 이름이 "github"라는 이름이 "github"라는 이름을 밝히지 마십시오.

Jenkins에서 자동 빌드를 달성하는 두 가지 방법이 있습니다.선택한 내용은 GitHub가 제공 한 Jenkins Server URL을 호출 할 수 있는지 여부에 따라 다릅니다.방화벽 뒤에 Jenkins를 실행하는 경우의 경우가 아닐 수도 있습니다.

  1. GitHub가 해당 URL에 도달 할 수있는 경우 Repo에서 서비스 후크 을 설정할 수 있습니다.
  2. jenkins를 poll to 주기적으로 으로 설정할 수 있습니다.
  3. 둘 다를 설정할 수 있지만 하나의 해결책이 작동하기에 충분합니다.나는 자원 CPU와 트래픽 현명을 절약 할 때 처음으로 처음으로 가야합니다.

    Github 플러그인이 필요합니다. .P>

    조금 도움이되는 희망.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top