Désactiver simultanées construit

Fond: Nous sommes à la recherche d'une solution sur la façon d'optimiser notre pipeline (ancien plan de travail).

Actuellement, nous courons calme, quelques parallèle des déploiements et des essais qui sont réparties sur les 2 constructeurs, avec 4 exécuteurs chaque.

Le pipeline est déclenchée par un Git push, donc postérieure pousse va déclencher de multiples versions. Nous avons expérimenté avec la scène de la simultanéité: 1 option, qui joliment blocs d'une étape par une version ultérieure, mais le coup de quand ce stade précis est fait.

Question(s):

Je ne suis pas sûr que c'est la meilleure pratique, mais Il me semble, il serait préférable de ne pas exécuter la construction de la nouvelle, jusqu'à ce que le précédent est terminé. (Le raisonnement à partir du fait que nous avons commis des ressources, et il devrait être autorisé à fini, même si ce n'est pas la plus récente et la plus commettre).

Q1: Est-ce encore meilleure pratique?

Q2: comment pouvons-nous anticiper la nouvelle triggert construire, pendant l'exécution de la précédente? (Je ne peux imaginer une itération à travers la construction de ce travail et d'arrêter le nouveau...).

Voir la config de la première étape [1]

[1] première étape..

stage name: 'Checkout and build WAR'
node {
    def mvnHome = tool 'Maven 3.2.x'
    checkout([$class                           : 'GitSCM',
          poll                             : true,
          branches                         : [[name: '*/master']],
          doGenerateSubmoduleConfigurations: false,
          extensions                       : [[$class           : 'RelativeTargetDirectory',
                                               relativeTargetDir: 'checkout-directory']],
          submoduleCfg                     : [],
          userRemoteConfigs                : [[url: 'https://some.repo/repo.git']]])

//Archive the cloned repo.
stash name: 'src', includes: 'checkout-directory/war/src/, checkout-directory/war/pom.xml'

//Run without tests, do the unit and integration tests in a separate stage.
sh "${mvnHome}/bin/mvn -f checkout-directory clean install -DskipTests"

//Archive the application build.
stash name: 'war', includes: 'checkout-directory/war/target/*.war'
}
InformationsquelleAutor user1794565 | 2016-04-20