web-dev-qa-db-fra.com

"Construire périodiquement" avec un pipeline multi-branches à Jenkins

Je lance Jenkins 2 avec le plugin Pipeline. J'ai configuré un projet de pipeline multi-branches dans lequel chaque branche (maître, développer, etc.) a un fichier Jenkins à la racine. La mise en place était simple. Cependant, je ne sais pas comment exécuter chaque branche régulièrement (et non l'indexation de branche), même lorsque le code ne change pas. Que dois-je mettre dans mon fichier Jenkins pour permettre des builds périodiques?

59
geowa4

Si vous utilisez un fichier Jenkinsfile de style déclaratif, utilisez la directive triggers .

pipeline {
    agent any
    triggers {
        cron('H 4/* 0 0 1-5')
    }
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
}
36
teeks99

Si vous utilisez un pipeline de style déclaratif et souhaitez uniquement déclencher la génération sur une branche spécifique, vous pouvez procéder de la manière suivante:

String cron_string = BRANCH_NAME == "master" ? "@hourly" : ""

pipeline {
  agent none
  triggers { cron(cron_string) }
  stages {
    // do something
  }
}

Trouvé sur Jenkins Jira

45
Julian Veerkamp

J'ai pu trouver un exemple illustrant ceci: abandonner d'anciennes versions, ce que je voulais aussi.

Jenkinsfile dans jenkins-infra/jenkins.io:

properties(
    [
        [
            $class: 'BuildDiscarderProperty',
            strategy: [$class: 'LogRotator', numToKeepStr: '10']
        ],
        pipelineTriggers([cron('H/30 * * * *')]),
    ]
)
24
geowa4

Cela fonctionne pour moi:

  triggers {
    cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '')
  }

Voir plus dans ce article

5
Paweł Iwaneczko

Pour les exécutions périodiques paramétrées ou les déclencheurs planifiés, on pourrait utiliser comme suit.

triggers{
    parameterizedCron env.BRANCH_NAME == "develop" ? '''H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=vbox;VERSION=10.5.0.0
H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=workstation;VERSION=10.5.0.0''' : ""
}
0
merlachandra