Jenkins-특정 브랜치를 구축하는 방법


95

이것은 매개 변수화 된 빌드를 수행하는 것만 큼 간단하지 않습니다. 이러한 분기가 GitHub로 푸시 될 때마다 빌드 및 배포 할 특정 빌드 프로세스가 이미 있습니다.

여기에 이미지 설명 입력

난 그냥 밀어했습니다 그렇다면 develop그것은 성공적으로 구축, 어떻게 수동 빌드를 실행하고 당겨해야합니까 feature/my-new-feature(A를하지 않고 git push)? 매개 변수화 된 빌드를 활성화하고라는 새 문자열 branch을 추가 한 다음 새 분기 지정자 인 */$branch. 나는 그 빌드 및 세트를 실행 branchfeature/my-new-feature그것은 여전히에서 가져온 develop.

어떤 도움을 주시면 감사하겠습니다!


github webhook에 대해 이야기하고 있습니까? 이것은 당신의 문제를 해결할 수 있습니다. github에서 이것을 트리거 하시겠습니까?
Abhijeet Kamble

1
아니요, GitHub 통합은 이미 작동 중입니다. 특정 분기를 수동으로 구축하는 방법을 알고 싶습니다.
ffxsam

3
나도 같은 문제가있어. 이 작업은 다른 브랜치를 빌드하도록 구성되며 git 후크에 의해 트리거됩니다. 그러나 특정 브랜치를 수동으로 빌드하고 싶을 때 (GIT의 새로운 변경없이) "지금 빌드"를 클릭하지만 항상 최신 체크 아웃 브랜치를 빌드합니다. 또한 다양한 빌드 속성을 시도했습니다.
cornz

매개 변수 이름이 branch 인 $branch경우 분기 지정자 필드 에 지정하기 만하면 됩니다.
Alexey

1
@Alexey이지만 자동으로 시작된 빌드 중에 $branch빈 문자열 이 생성 됩니다.
Nakilon 2016-08-22

답변:


109

최상의 솔루션은 다음과 같습니다.

기존 작업에 문자열 매개 변수 추가 여기에 이미지 설명 입력

그런 다음 Source Code Management섹션 업데이트 Branches to build에서 정의한 문자열 매개 변수를 사용합니다.여기에 이미지 설명 입력

확인란이 표시 Lightweight checkout되면 선택 취소되어 있는지 확인합니다.

이미지에 표시된 구성은 jenkins 작업에 master기본 브랜치 로 사용하도록 지시하고 수동 빌드의 경우 브랜치 세부 정보를 입력하도록 요청합니다 (참고 : 기본적으로로 설정 됨 master).여기에 이미지 설명 입력


4
기본적으로 빌드 마스터는 모든 개발 브랜치를 빌드해야하는 일반 개발 빌드의 경우이를 자르지 않습니다.
static_rtti 2016

9
맙소사, 너무 엉망이야. Jenkins가 Branches to build적용되는 망할 Git 저장소로 섹션을 유지하지 않는 이유는 무엇 입니까? 빌드 할 브랜치를 지정하기 위해이 작업을 수행해야하는 것은 어리석은 PITA입니다.
Alex Zavatone

9
Dong 이것은 작동하지 않습니다 (나에게). 나는 Jenkins git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prune가 분명히 유효하지 않은 지점을 확인하려고합니다 .
Liam

1
이것은 Jenkins에 버그 로 기록 되므로 이것이 어떻게 작동했는지 알기가 어렵습니까?
Liam

19
@Liam 버그 티켓에서 제안한대로이 작업을 수행하려면 "Lightweight checkout"을 선택 취소해야합니다.
asmaier

10

나는 당신이 동일한 젠킨스 작업 내에서 둘 다 할 수 있다고 생각하지 않습니다.해야 할 일은 브랜치를 검색하기 위해 github에 액세스 할 수있는 새로운 젠킨스 작업을 구성 한 다음 수동으로 빌드 할 것을 선택할 수 있습니다.

매개 변수화 된 빌드로 표시하고 이름을 지정하고 다음과 같이 구성된 매개 변수를 지정하기 만하면됩니다. git parameter

여기에 이미지 설명 입력

이제 git 옵션을 구성 할 수 있습니다.

여기에 이미지 설명 입력


7
그 git 매개 변수는 jenkins 플러그인입니까? 해당 유형의 prameter를 추가하는 옵션이 표시되지 않습니다. 그것이 플러그인이라면 대답에서 그것을 가리킬 수 있습니까?
Leandro David

@LeandroDavid yes Git Parameter는 Add Parameter 아래에이 옵션이 표시되면 설치해야하는 플러그인입니다.
gotosachin

9

Jenkins 스크립트를 통해 브랜치를 체크 아웃하려면 다음을 사용하세요.

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
나는 이것이 정확히 질문에 관한 것이 아니라는 것을 알고 있지만, 나는이 정보를 검색하고 있었고 Google 은이 사이트를 대답으로 계속 제안했습니다.
Igor L.

여기도 마찬가지입니다. 당신은 정확한 답에 대한 답 찾을 수 있었
thinkingmonster

0

이것은 Ranjith가 제공 한 답변의 확장입니다.

선택 매개 변수 빌드를 선택하고 빌드하려는 브랜치를 지정하는 것이 좋습니다. 활성 선택 매개 변수

그런 다음 빌드 할 분기를 지정할 수 있습니다. 빌드 할 분기

이제 프로젝트를 빌드 할 때 "Build with Parameters, where you can choose the branch to build"가 제공됩니다.

활성 선택 매개 변수에서 모든 브랜치를 가져 오는 그루비 스크립트를 작성할 수도 있습니다.


자세히 설명 해주세요. TeamCity는 기본적으로이 작업을 수행하지만 Jenkins는 자체 신발을 묶을 수도 없습니다 !!!
C Johnson

0

여기에 이미지 설명 입력

Build Triggers 아래에 구성 옵션이 있습니다.

GitHub 브랜치 확인

후크가 생성되고 github 브랜치를 선택하면 Jenkins에서 원하는 브랜치를 빌드 할 수 있습니다. 여기에 이미지 설명 입력

도움이되기를 바랍니다 :)


이 설정에서이 플러그인을 사용하려고하는데 작업을 시작하는 방법을 찾을 수 없습니다. 이벤트가 gh에서 올바르게 오는지 확인하는 다른 방법이 있습니까?
Vito De Tullio

당신이 얻고있는 Run Branch Trigger옵션을, 그것도 단지 젠킨스 로그에 보면 ... 가능한 모든 지점에 대한 자식의 repo를 스캔 -> 젠킨스 관리하에 ... 오류가 발생했는지 확인하기
토마스 rohit

1
자세히 설명해주세요. 설명이 너무 작고 짧습니다.
C Johnson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.