SCM에서 저장소를 복제하지 않도록 Jenkins 작업 설정


17

Bitbucket Plugin을 사용하여 Jenkins를 Bitbucket과 통합했습니다 . 플러그인의 Wiki에 따라 저장소가 작업의 SCM에 설정된 경우 지정된 작업이 트리거됩니다. 아시다시피, Jenkins 작업에서 SCM을 설정하면 사전 빌드 단계에서 복제됩니다.

여태까지는 그런대로 잘됐다. 그러나 내가 설정 한 작업의 주요 목적은 저장소의 내용과 관련이 없습니다. 대신, Bitbucket이 보낸 페이로드를 작업에서 처리하기를 원합니다. 실제로는 필요하지 않지만 저장소를 복제하는 것은 스토리지 측면에서 큰 문제가 아니라고 말할 수 있습니다. 나는 그렇게 생각하지 않습니다. 불필요한 단계를 추가하고 시간과 자원을 소비하는 것은 좋은 습관이 아닙니다.

질문은 Jenkins 작업에서 SCM을 설정하는 방법을 알고 있지만 리포지토리를 복제하지 못하게하는 것입니까?


2
Jenkins를 Jenkins의 범위를 벗어난 마이크로 서비스로 사용하려고하는 것처럼 들립니다. :). 이 작업이 흥미 롭기 때문에 게시하면 다시 게시하십시오.
트래비스 톰슨

Jenkins를 마이크로 서비스로 사용하고 있지 않습니다. 왜 그런 말을 해? 실제로이 모든 것이 해결 방법입니다. 많은 리포지토리에 공통적 인 파이프 라인 작업을 사용하고 있습니다. Jenkinsfile이 다른 저장소에 있습니다. 따라서 Bitbucket 플러그인을 사용하여 파이프 라인을 직접 트리거 할 수는 없으므로 트리거하지 않기 때문에 리포 당 "프록시 작업"을 생성하고 다운 스트림 작업으로 파이프 라인에 정보를 전송하기로 결정했습니다. 이러한 "프록시 작업"에서 리포지토리를 복제 할 필요는 없지만 SCM에 있어야합니다.
Héctor Valverde Pareja

이해하기가 어렵고 실제로 달성하고자하는 것보다 불가능한 것에 대해 더 많이 쓰고 있습니다. 실제로 달성하고자하는 것과 프록시 작업이 어떻게 적용되는지에 대해 더 자세한 정보를 추가 할 수 있습니까?
Michael Le Barbier Grünewald

나는 당신이 위의 내 의견에 대해 이야기하고 있다고 생각합니다. 첫 의견에 대한 답일뿐입니다. 주요 질문을 참조하십시오. 추가 할 것이 없습니다. 내가 원하는 것은 "빌드 도중 Jenkins가 저장소를 복제하지 못하도록 방지"라는 것입니다.
Héctor Valverde Pareja

1
@ HéctorValverdePareja 물론, 당신의 말은 A가 충분한 세부 사항을 제공하는 것 사이에서 주저하는 것처럼 보이므로 모든 사람들이 XY 문제 상황에 있는지 확인하고 B / 단지 당신이 달성하고자하는 정확한 것에 집중할 수 있습니다. 나는 당신이 원래의 문제와 당신이 구현하려고하는 해결책을 충분히 묘사 함으로써이 주저를 제거 할 수 있다고 생각합니다. 그러나 이제 누군가가 답변을 썼으므로 더 이상 중요하지 않을 수 있습니다.
Michael Le Barbier Grünewald

답변:


18

물론 이죠 나는 항상 이것을한다. 파이프 라인에 대한 구성 옵션을 지정할 수 있으며 그 중 하나는 skipDefaultCheckout이므로 파이프 라인이 기본 "Declarative : Checkout SCM"단계를 건너 뜁니다.

skipDefaultCheckout옵션은 파이프 라인 구문에 설명되어 있으며 사용 방법을 보여주는 Jenkinsfile의 예는 다음과 같습니다.

pipeline {
  agent { label 'docker' }
  options {
    skipDefaultCheckout true
  }
  stages {
    stage('commit_stage') {
      steps {
        echo 'sweet stuff here'
      }
    }
  }
}

1
어떻게 하시겠습니까? 스테이지에서 리포지토리를 수동으로 복제 하시겠습니까?
Oz123

2
checkout scm필요한 곳을 수동으로 복제하도록 실행할 수 있습니다. devops.stackexchange.com/a/1916/2450을 참조하십시오 .
burnettk

5

선언적 파이프 라인을 사용하지 않는 경우 다음을 통해 SCM에서 체크 아웃하지 않아도됩니다.

node {
        skipDefaultCheckout()
        //...
}

1
문서에 대한 링크를 추가하고 skipDefaultCheckout ()에 대해 더 자세히 설명해 주시겠습니까?
030

기존 답변과 비교하여 부가가치를 보지 못합니다. 설명없이 좋은 답변이 아닌 '이것을 시도하십시오'입니다.
Tensibai

이 답변은 허용되는 답변을 보완하는 것으로 좋습니다. 모든 사람이 선언적 파이프 라인 플러그인을 사용하지는 않으므로 절차 적 플러그인을 사용하는 사람들에게 효과적입니다.
RichVel

1

Jenkins 작업에서 웹훅 페이로드를 처리하는 것이 목표라고 생각합니다. 비트 버킷 플러그인을 사용할 필요는 없으며 아마도 리포지토리를 복제하도록 강력하게 설계되었을 것입니다.

이 stackoverflow 답변 이 도움이 될 수 있다고 믿습니다 .


그 링크 된 답변에서 관련 인용문을 포함하십시오 ...
Pierre.Vriens

1
DevOps에 오신 것을 환영합니다! 이것이 이론적으로 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 바람직 합니다.
Richard Slater

@RichardSlater DevOps 정책에 대해 잘 모르겠지만 다른 사이트에서는 네트워크 내 링크를 제외합니다.
병아리

3
@chicks 심지어 StackOverflow 링크는 링크가 썩을 수 있으며 질문을 요약하면 답변자가 링크에 의해 질문에 대한 답변이 있다고 믿는 다른 이유를 명확하게 나타냅니다.
Richard Slater
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.