2017-01-26 4 views
0

У меня есть следующий конвейер (в основном, Build_BASE запускает параллельно-вниз по течению сборки):Как начать строить с середины трубопровода на основе мерзавца совершить

   -> BUILD1 
Build_BASE -> BUILD2 
      -> BULID3 

Если кто-то делает мерзавец совершить Build_Base он начнет весь трубопровод.

Но если кто-то совершает фиксацию BUILD1 или 2 или 3, я хочу, чтобы сборка начала с этой точки и НЕ построила Build_Base. Это возможно?

Вот урезанная версия моего трубопровода (я не добавлял GIT опрос на это пока)

stage('Base_AMI') { 
    node('eod-us-west-2_shared') { 
    stage('Build') { 
     deleteDir() 
     git branch: 'master', credentialsId: '2df157d3-f9c3-4005-91d0-b3052764474f', url: '[email protected]:myrepo/base_ami.git' 
     sh "bash do_build.sh" 
    } 
    } 
} 

stage("DOWNSTREAM_BUILDS"){ 
    parallel (
    "BUILD1" : { 
     node('eod-us-west-2_shared') { 
     wrap([$class: 'BuildUser']) { 
      sh 'echo ${BUILD_USER}' 
      deleteDir() 
      git branch: 'master', credentialsId: '2df157d3-f9c3-4005-91d0-b3052764474f', url: '[email protected]:myrepo/build1.git' 
      sh "bash do_build.sh" 
     } 
     } 
    }, 
    "BUILD2" : { 
     node('eod-us-west-2_shared') { 
      deleteDir() 
      git branch: 'master', credentialsId: '2df157d3-f9c3-4005-91d0-b3052764474f', url: '[email protected]:myrepo/build2.git' 
      sh "bash /private/myrepo/git_clone_repo.sh" 
      sh "bash do_build.sh" 
     } 
    }, 
    "BUILD3" : { 
     node('eod-us-west-2_shared') { 
      deleteDir() 
      git branch: 'master', credentialsId: '2df157d3-f9c3-4005-91d0-b3052764474f', url: '[email protected]:myrepo/build3.git' 
      sh "bash do_build.sh" 
     } 
    } 
) 
} 
+0

Это 1 репозиторий в общей сложности, или 4? – hakamairi

+0

4 уникальных репозитория git. спасибо за вопрос. – grayaii

ответ

0

Кажется, что должно произойти в том, что каждый из ваших GIT хранилищ должны иметь это на трубопроводе с Jenkinsfile of its own.

Тогда в вас вверх по течению работы вы бы просто сделать:

stage("DOWNSTREAM_BUILDS"){ 
    parallel (
    // job 1, 2 and 3 will be scheduled in parallel. 
    { build("job1") }, 
    { build("job2") }, 
    { build("job3") } 
) 
} 

Весь фокус в том, ваша конфигурация трубопроводов - каждый из них должен быть опрос только его собственный репозиторий.

Смежные вопросы