2016-05-03 6 views
3

Ich habe Probleme mit der Jenkins 2.1 Multibranch-Pipeline, wo ich mehrere Artefakte aus dem gleichen Git-Repository haben. Einige der Artefakte sind unabhängig und sollten Auslöser für Änderungen in ihren jeweiligen Verzeichnissen sein. Einige sind abhängig und sollten durch einen vorherigen Schritt/Build ausgelöst werden.Jenkins Multibranch-Pipeline mit mehreren Startpunkten

Das Repository hat eine Jenkins-Datei, die die gesamte Pipeline steuert. Der Job Jenkins Multibranch Pipeline wird bei allen Änderungen ausgelöst (keine zusätzlichen Behavoirs).

Ich sehe nicht, wie man den Build von Artefakt A nur auf Änderungen im Verzeichnis dirA auslösen kann.

Die Jenkinsfile im git Repo bei file: /// repopath sieht wie folgt aus:

node(){ 
    stage 'Build A' 
    checkout([$class: 'GitSCM', 
     branches: [[name: '*/master']], 
     doGenerateSubmoduleConfigurations: false, 
     extensions: [ 
     [$class: 'PathRestriction', 
      excludedRegions: '.*', 
      includedRegions: 'dirA/.*'], 
     [$class: 'RelativeTargetDirectory', 
     relativeTargetDir: 'sub']], 
     submoduleCfg: [], 
     userRemoteConfigs: [[url: 'file:///repopath']]]) 
    sh './buildA.sh' 
} 
node(){ 
    stage 'Build B' 
    ... 
} 
... 

Dies wird immer auslösen den Lauf von buildA.sh :-(

Ich bin mit der folloing Plugins:

  • Git-Client Plugin 1.19.6
  • Git-Plugin 2.4.4
  • Git-Server Plugin 1.6
  • Pipeline 2.0
  • Pipeline: API 2.0
  • Pipeline: Grundlegende Schritte 2.0
  • Pipeline: Build Schritt 2.0
  • Pipeline: Groovy 2.1
  • Pipeline: Input Schritt 2.0
  • Pipeline: Job 2.1
  • Pipeline: Multibranch 2.3
  • Pipeline: Knoten und Prozesse 2.0
  • Pipeline: REST API Plugin 1.3
  • Pipeline: SCM Schritt 2.0
  • Pipeline: Geteilt Groovy Bibliotheken 2.0
  • Pipeline: Phase Step 2.0
  • Pipeline: Phase Ansicht Plugin 1.3
  • Pipeline: Schritt 2.0 API
  • Pipeline: Unterstützung APIs 2,0
+0

Nur ein Kommentar für jetzt, da ich es noch nicht selbst ausprobiert habe: das nonsnapshot-maven-plugin hat eine Funktion, die es dir ermöglicht, maven nur mit den geänderten Modulen zu starten: es gibt mehr Details unter http: //kofler.nonblocking.at/2015/01/build-pipeline-on-jenkins-with-incremental-maven-builds-and-automatic-versioning/ das Feature, über das ich spreche, kommt ein bisschen weiter unten in diesem Artikel. – tobi42

Antwort

2

wie etwa nur etwas li tun ke

git log --pretty=format: --name-only -n 15 | sort | uniq 

?? Wenn Sie die Anzahl der Commits in einem Build oder deren Hashes bestimmen könnten, würde dies Ihre Frage beantworten.