Jenkins GitHub 연동: Git 플러그인 설치 방법은 무엇인가요?

⚡ 스마트 요약

Jenkins GitHub 통합은 자동화 서버를 소스 저장소에 연결하여 모든 커밋을 자동으로 빌드하고 검증할 수 있도록 합니다. Git 플러그인을 설치하고, Freestyle 작업을 생성하고, 토큰으로 인증하고, 웹훅을 등록하면 연결이 완료됩니다.

  • 🔌 플러그인 Foundation: Jenkins 최소한의 기능만 제공하므로 타사 지원은 관리 메뉴에서 설치하는 플러그인을 통해 제공됩니다. Jenkins 플러그인 페이지입니다.
  • 🌿 Git vs GitHub 플러그인: Git 플러그인은 소스를 제공합니다. Code 저장소를 복제하는 관리 옵션입니다. GitHub 플러그인은 웹훅 처리 및 커밋 상태 보고 기능을 추가합니다.
  • 💻 로컬 Git이 필요합니다: Jenkins 클론 작업은 호스트의 Git 실행 파일로 위임되므로 로컬에 설치가 되어 있지 않으면 저장소가 생성됩니다. URL 유효성 검사 오류입니다.
  • 🔑 토큰 인증: GitHub는 2021년 8월부터 Git 작업에 계정 암호를 사용하는 것을 중단했으므로 비공개 저장소에는 개인 액세스 토큰 또는 SSH 키가 필요합니다.
  • 🪝 자동 트리거: 저장소 웹훅이 다음을 가리킵니다. Jenkins github-webhook 엔드포인트는 수동으로 빌드를 실행하는 대신 푸시할 때마다 빌드를 시작합니다.
  • 🧾 확인 : `git –version` 명령을 실행하면 실행 파일이 제대로 인식되는 것을 확인할 수 있으며, 관리도 가능합니다. Jenkins 도구는 경로를 기록합니다.
  • 🛠️ 장애 복구: 누락된 소스 Code 관리 옵션, 거부된 자격 증명 및 비공개 웹훅이 대부분의 통합 실패 원인입니다.

Jenkins GitHub 통합

여러분은 이미 무엇을 배웠습니다 Jenkins 은 무엇이며 어떻게 하는가? 에 설치 Windows 체계이러한 기본 단계를 완료했다고 가정하고 이제 플러그인 관리로 넘어가겠습니다.

Jenkins 뛰어난 플러그인 지원을 제공합니다. 1,000개 이상의 타사 애플리케이션 플러그인을 사용할 수 있습니다. 확인하려면 다음을 참조하세요. Jenkins 원하는 타사 애플리케이션을 지원하는지 확인하려면 플러그인 디렉토리를 검색하세요. https://plugins.jenkins.io/.

Jenkins GitHub 통합

플러그인 설치 Jenkins

Jenkins 기본 설정이 상당히 간단하기 때문에 각 타사 애플리케이션 지원을 활성화하려면 필요한 플러그인을 설치해야 합니다.

GitHub는 DevOps에서 중요한 역할을 하는 웹 기반 코드 저장소입니다. 여러 개발자가 동일한 코드 또는 프로젝트에서 작업할 때 업데이트된 코드를 업로드하고 검색할 수 있는 공통 플랫폼을 제공하여 지속적 통합을 용이하게 합니다.

Jenkins GitHub 저장소에서 코드를 가져오려면 Git 플러그인이 설치되어 있어야 합니다. 두 플러그인 이름이 혼동되는 경우가 많으므로 아래 표에서 구분했습니다.

플러그인 그것이 제공하는 것 이 공략을 보려면 무엇이 필요합니까?
Git 플러그인 The 힘내 소스 옵션 Code 관리, 저장소 복제 및 브랜치 선택 네, 이것이 바로 핵심입니다.
GitHub 플러그인 웹훅 처리, GitHub 후크 트리거 옵션 및 빌드 상태가 커밋에 보고됩니다. 자동 트리거링 전용

이미 권장 플러그인을 수락하셨다면 이 플러그인들을 설치할 필요가 없습니다. Jenkins Git 플러그인이 설치 설정에 포함되어 있으므로 설치 설정은 간단합니다. 만약 그렇지 않다면, GitHub 저장소에서 코드를 가져오는 방법과 플러그인 설치 방법은 다음과 같습니다.

Git 플러그인을 설치하는 방법 Jenkins

다음은 Git 플러그인을 설치하는 단계별 과정입니다. Jenkins:

1 단계 : 대시보드를 엽니다.
온 클릭 관리 Jenkins 당신의 버튼 Jenkins 계기반:

Git 플러그인을 설치하세요 Jenkins

2 단계 : 플러그인 옵션을 찾으세요.
를 클릭하십시오 플러그인현재 Jenkins 이 항목은 간단히 라벨이 붙어 있습니다. 플러그인이전 버전에서는 동일한 화면에 라벨이 붙어 있었습니다. 플러그인 관리.

Git 플러그인을 설치하세요 Jenkins

3 단계 : 플러그인 페이지에서 열기 사용 가능한 플러그인 탭을 누른 다음:

  1. 선택 힘내 플러그인
  2. 다시 시작하지 않고 설치플러그인 다운로드는 인터넷 연결 속도에 따라 몇 분 정도 소요되며, 다운로드 후 자동으로 설치됩니다.
  3. 대신 선택하실 수도 있습니다. 지금 다운로드하고 재부팅 후 설치하세요.이 경우 플러그인은 다음과 같은 시점에 적용됩니다. Jenkins 다음 시작.
  4. 플러그인이 이미 설치되어 있는 경우, 해당 플러그인은 다음 위치에 표시됩니다. 설치 탭이 열려 있지만 업데이트가 제공되지 않습니다.

Git 플러그인을 설치하세요 Jenkins

4 단계 : 플러그인 설치가 완료되면 다음으로 이동하세요. 관리 Jenkins > 플러그인 > 설치된 항목새로 설치한 플러그인은 다른 플러그인들과 함께 목록에 표시됩니다.

Git 플러그인을 설치하세요 Jenkins

플러그인이 설치되면, Jenkins 이제 실제 저장소를 가리킬 수 있습니다.

통합하는 방법 Jenkins GitHub를 사용하면

이제 통합 과정을 단계별로 살펴보겠습니다. Jenkins 그리고 GitHub에서 Windows 시스템 :

단계 1) 새로운 일자리를 만드세요 Jenkins. 그 Jenkins 대시보드에서 Jenkins URL예를 들어, http://localhost:8080/그리고 클릭 새 항목:

통합 Jenkins GitHub를 사용하면

단계 2) 품목명을 입력하고 작업 유형을 선택한 후 클릭하세요. OK. 예시로 Freestyle 프로젝트를 생성하겠습니다.

통합 Jenkins GitHub를 사용하면

단계 3) 클릭하면 OK그러면 페이지가 프로젝트 구성 양식으로 이동합니다. 여기에 프로젝트 정보를 입력하세요.

통합 Jenkins GitHub를 사용하면

단계 4) 당신은 볼 것이다 힘내 아래의 옵션 출처 Code Git 플러그인이 설치되어 있는 경우 Jenkins:

통합 Jenkins GitHub를 사용하면

참고 : 경우 힘내 해당 옵션이 나타나지 않으면 플러그인을 재설치하고 재시작하십시오. Jenkins그리고 대시보드에 다시 로그인하세요. 힘내 그러면 위와 같이 옵션이 표시됩니다.

단계 5) Git 저장소에 접속하세요 URL GitHub에서 코드를 가져오려면.

통합 Jenkins GitHub를 사용하면

단계 6) 저장소에 처음 접속할 때 오류 메시지가 표시될 수 있습니다. URL. 예를 들면 :

통합 Jenkins GitHub를 사용하면

이는 Git이 실행 중인 시스템에 설치되어 있지 않을 때 발생합니다. Jenkins. Jenkins 이 플러그인은 자체 Git 바이너리를 포함하지 않으며, 호스트의 Git 실행 파일을 호출합니다. Git을 로컬에 설치하려면 다음 링크를 참조하세요. https://git-scm.com/downloads.

통합 Jenkins GitHub를 사용하면

사용 환경에 맞는 Git 설치 프로그램을 다운로드하세요. Opera팅 시스템 — 이 경우에는 Windows — 그리고 실행 중인 컴퓨터에 설치하세요 Jenkins화면에 나타나는 지시에 따라 설치를 완료하십시오.

통합 Jenkins GitHub를 사용하면

단계 7) Jenkins Git이 컴퓨터에 설치되면 Git 저장소를 실행할 수 있습니다. 설치를 확인하려면 Git 저장소 관리자 페이지를 여세요. 명령 프롬프트입력 git그런 다음 Enter 키를 누릅니다. Git 옵션 목록이 나타납니다.

통합 Jenkins GitHub를 사용하면

:: Confirm the Git executable resolves and report its version
git --version

:: Expected output
git version 2.51.0.windows.1

:: Show the full path Jenkins should record in Global Tool Configuration
where git

이는 Git이 시스템에 설치되어 있음을 확인시켜 줍니다.

참고 : Git이 이미 설치되어 있는 경우 다음을 추가하세요. git.exe 아래 경로 관리 Jenkins > 도구 (표시됨) 글로벌 도구 구성 (이전 버전에서).

단계 8) 모든 준비가 완료되면 Git을 추가하세요. URL 으로 Jenkins 다시 한번. 오류 메시지가 나타나지 않아, 이는 다음이 맞음을 확인시켜 줍니다. Jenkins Git 통합:

통합 Jenkins GitHub를 사용하면

이제 시스템에 Git이 제대로 구성되었습니다. 공개 저장소는 이 시점에서 복제되지만, 비공개 저장소는 다음 단계에서 자격 증명을 입력해야 합니다.

인증 방법 Jenkins GitHub 개인 액세스 토큰을 사용하면

GitHub는 2021년 8월부터 Git 작업에 계정 비밀번호를 더 이상 허용하지 않습니다. 사용자 이름과 비밀번호를 제공해야 합니다. Jenkins 따라서 동일한 자격 증명으로 GitHub 웹사이트에 로그인하더라도 인증 오류로 인해 모든 비공개 저장소에 접근할 수 없습니다. 개인 액세스 토큰이 비밀번호를 대체합니다. Jenkins 자격 증명은 작업 구성이 아닌 자체 자격 증명 저장소에 저장됩니다.

먼저 GitHub에서 토큰을 생성하세요.

  1. GitHub에서 열기 설정 > 개발자 설정 > 개인 액세스 토큰.
  2. 선택 세밀한 가능한 경우 토큰을 사용하세요. 토큰은 단일 저장소 또는 다른 저장소로 범위를 지정할 수 있기 때문입니다. 고전적인 조직에서 여전히 토큰이 필요한 경우.
  3. 저장소 콘텐츠에 대한 읽기 권한을 부여합니다. 커밋 상태에 대한 쓰기 권한은 필요할 때만 추가합니다. Jenkins 빌드 결과를 커밋에 보고합니다.
  4. 만료일을 설정하고 토큰을 즉시 복사하세요. GitHub에서는 토큰을 딱 한 번만 표시합니다.

그런 다음 토큰을 내부에 등록하세요. Jenkins:

  1. We Buy Orders 신청서를 클릭하세요. 관리 Jenkins 자격 증명 > 시스템 > 글로벌 자격 증명 클릭 자격 증명 추가.
  2. 선택 사용자 이름과 비밀번호 종류로 입력하세요. GitHub 사용자 이름을 입력하고 붙여넣으세요. 토큰 비밀번호 입력란에 입력하세요.
  3. 항목에 다음과 같은 명확한 ID를 부여하세요. github-pat 따라서 작업 구성 화면에서 쉽게 알아볼 수 있습니다.
  4. 업무로 돌아가기, 열기 출처 Code 관리 > Git그리고 새 자격 증명을 선택하세요. 신임장 쓰러지 다.

저장소 아래에 있는 빨간색 유효성 검사 오류 URL 한 번 사라지다 Jenkins 인증이 가능합니다. 두 가지 실용적인 사항을 기억해 두는 것이 좋습니다. 첫째, 토큰은 만료됩니다. 몇 달 동안 안정적으로 실행되다가 갑자기 체크아웃 시 실패하는 경우, 저장소 자체의 문제라기보다는 토큰이 만료된 경우가 거의 대부분입니다. 둘째, SSH 키도 유효한 대안입니다. 개인 키를 추가하세요. 개인 키가 포함된 SSH 사용자 이름 자격증명을 사용하고 git@github.com:owner/repo.git URL HTTPS 폼 대신 일반 폼을 사용합니다.

트리거 방법 Jenkins GitHub 웹훅을 사용하여 자동으로 빌드됩니다.

위에서 생성한 작업은 여전히 ​​수동으로 시작해야 하므로 지속적 통합의 목적에 부합하지 않습니다. 웹훅은 이러한 문제를 해결합니다. GitHub는 HTTP 요청을 보냅니다. Jenkins 누를 때마다, 그리고 Jenkins 빌드를 즉시 시작합니다.

Jenkins 이 기능이 작동하려면 GitHub에서 접근 가능해야 합니다. 노트북에서 실행 중입니다. localhost:8080 그렇지 않으므로 호스트도 마찬가지입니다. Jenkins 대중에 URL 또는 테스트 중에 터널링 서비스를 통해 일시적으로 노출할 수도 있습니다.

  1. GitHub 플러그인을 설치하세요. (으)로 돌아 가기 관리 Jenkins > 플러그인 > 사용 가능한 플러그인 설치하다 GitHub의이는 Git 플러그인 자체에서는 제공하지 않는 트리거 옵션을 추가합니다.
  2. 작업에 트리거를 활성화하세요. 작업 구성을 열고 아래로 스크롤합니다. 빌드 트리거, 틱 GITScm 폴링을 위한 GitHub 후크 트리거.
  3. GitHub에 웹훅을 추가하세요. 저장소에서 열기 설정 > 웹훅 > 웹훅 추가.
  4. 페이로드를 설정하세요 URL 너의 ~에게 Jenkins 주소 뒤에 /github-webhook/마지막 슬래시(/)가 중요합니다.
  5. 콘텐츠 유형을 설정하세요 에 application/json 선택하고 푸시 이벤트만.
  6. 저장하고 테스트하세요. GitHub에서 보냅니다 ping 즉시. 녹색 체크 표시 최근 배달 방법 Jenkins 받아들였습니다.
# Payload URL format for the GitHub webhook
https://jenkins.example.com/github-webhook/

# Content type
application/json

# Verify from the Jenkins host that the endpoint answers
curl -I https://jenkins.example.com/github-webhook/

커밋을 푸시하여 루프가 완료되었는지 확인하세요. 작업은 몇 초 안에 빌드 큐에 나타나며 별도의 수동 조치가 필요하지 않습니다. 아무런 변화가 없으면 GitHub에서 웹훅을 열고 로그를 확인하세요. 최근 배달 응답 코드: 403은 일반적으로 다음을 나타냅니다. Jenkins 보안 설정으로 인해 엔드포인트에 대한 익명 액세스가 차단되었고, 시간 초과로 인해 GitHub에서 해당 엔드포인트에 연결할 수 없게 되었습니다. Jenkins URL 천만에.

일단 빌드가 자동으로 시작되면, 남은 문제는 대개 몇 가지 반복적인 오류뿐입니다.

공통의 Jenkins GitHub 연동 오류 및 해결 방법

실패한 통합은 거의 모두 아래 범주 중 하나에 속하며, 각 범주에는 원인을 직접적으로 알려주는 뚜렷한 증상이 있습니다.

  • 소스 항목에 Git 옵션이 없습니다. Code 관리 : Git 플러그인이 설치되지 않았거나 로드되지 않았습니다. 다음 경로에서 다시 설치하십시오. 관리 Jenkins 플러그인, 재시작 Jenkins그리고 작업 구성 페이지를 새로고침하세요.
  • 공개 저장소에 연결하지 못했습니다. URL: Git이 누락되었습니다. Jenkins 호스트. Git을 설치한 다음 확인하세요. git --version 그리고 아래 경로를 기록하세요 관리 Jenkins > 도구.
  • 비공개 저장소에서 인증에 실패했습니다. 계정 암호가 사용 중입니다. 위에서 설명한 대로 개인 액세스 토큰으로 바꾸거나 SSH 키로 전환하십시오.
  • 푸시 후에도 빌드가 시작되지 않습니다. 중 GitHub 후크 트리거 체크박스가 선택 해제되었거나 GitHub에서 연결할 수 없습니다. Jenkins URL저장소 설정에서 웹훅 전달 로그를 확인하세요.
  • 잘못된 분기가 생성되었습니다: 전에, 분기 지정자 여전히 기본값을 유지합니다. */master 저장소가 사용하는 동안 main지정자를 일치하도록 업데이트하세요.
  • 어제는 결제가 잘 됐는데 오늘은 안 되네요. 개인 액세스 토큰의 만료일이 도래했습니다. 새 토큰을 생성하고 저장된 자격 증명을 업데이트하십시오.

또한 확인 : 최고 Jenkins 대안(오픈 소스 및 유료) 그리고 CI/CD 파이프라인 여기서 확립된 연결을 바탕으로 진행되는 워크스루입니다.

자주 묻는 질문

예. Git 플러그인은 모든 Git 호스트에서 클론을 생성하므로 소스 코드도 마찬가지입니다. Code 관리 단계는 동일합니다. 웹훅 구성만 다르며, 전용 GitLab 또는 Bitbucket 플러그인은 호스트별 트리거 및 상태 보고 기능을 제공합니다.

시연 목적 이외의 모든 경우에 있어서는 그렇습니다. Jenkins파일 저장소 관로 저장소 자체에 정의되어 있으므로 빌드 단계는 코드와 함께 버전 관리되고 검토되며, 저장소에만 존재하는 것이 아닙니다. Jenkins UI.

AI 어시스턴트는 빌드 실패 로그를 요약하고, 문제가 발생했을 가능성이 높은 커밋을 제안하며, 저장소 구조에서 파이프라인 단계를 작성합니다. Rev제안 사항을 적용하기 전에 모든 내용을 꼼꼼히 검토하십시오. 특히 자격 증명과 관련된 사항은 더욱 주의 깊게 살펴보시기 바랍니다.

아니요. AI는 진단 및 구성 작성 속도를 높여주지만, 오케스트레이션, 스케줄링 및 감사 추적에는 여전히 빌드 서버가 필요합니다. AI를 기존 시스템 위에 얹은 보조 도구 정도로 생각하시면 됩니다. Jenkins그것을 대체하는 것이 아닙니다.

예. 투표 SCM 빌드 트리거는 cron 구문을 사용하여 정해진 일정에 따라 저장소를 확인합니다. 방화벽 뒤에서도 작동하지만 요청이 낭비되고 빌드가 지연되므로 가능한 한 웹훅을 사용하는 것이 좋습니다. Jenkins 연락 가능합니다.

이 게시물을 요약하면 다음과 같습니다.