Comment puis-je déclencher la construction d'un autre travail depuis le Jenkinsfile
?
Je suppose que ce travail est un autre référentiel sous la même organisation github , qui a déjà son propre fichier Jenkins.
Je souhaite également le faire uniquement si le nom de la branche est master, car cela n'a pas de sens de déclencher des builds en aval de branches locales.
Mettre à jour:
stage 'test-downstream'
node {
def job = build job: 'some-downtream-job-name'
}
Pourtant, une fois exécuté, j'obtiens une erreur
Aucun travail paramétré nommé some-downtream-job-name trouvé
Je suis sûr que ce travail existe chez jenkins et se trouve dans le même dossier d'organisation que l'actuel. C'est un autre travail qui a le sien Jenkinsfile
.
Veuillez noter que cette question est spécifique au plugin d'organisation GitHub qui crée et gère automatiquement des tâches pour chaque référentiel et branche de votre organisation GitHub.
build job: '../other-repo/master', wait: false
build job: '../other-repo/$BRANCH_NAME'
où se$BRANCH_NAME
trouve la variable d'environnement Jenkins relative à la branche exécutant le projet Multibranch?${BRANCH_NAME}
est disponible comme variable d'environnement, une simple substitution de chaîne fera l'affaire. Assurez-vous simplement de passer à"
from'
pour citer votre chaîne. par exemplebuild job: "../other-repo/${BRANCH_NAME}"
build job
: jenkins.io/doc/pipeline/steps/pipeline-build-stepEn plus des réponses mentionnées ci-dessus: je voulais démarrer un travail avec un simple paramètre passé à un deuxième pipeline et j'ai trouvé la réponse sur https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow .
J'ai donc utilisé:
la source
build
commande est-il renvoyé? Comment accéder au BUILD_NUMBER dans l'une des étapes suivantes? Quelqu'un sait où cette commande est documentée?build job: 'freestyle', parameters: [ string(name: 'param1', value:'test_param'), string(name:'dummy', value: "${index}")]
nos jours, de jenkins.io/doc/pipeline/examples/#jobs-in-parallelbuild job: 'RunArtInTest', parameters: [[$class: 'StringParameterValue', name: 'systemname', value: systemname]]
n'a pas fonctionné pour moi, mais: abuild job: 'RunArtInTest', parameters: [string(name: 'systemname', value: "${VALUE}")]
travailléLa commande
build
en pipeline est là pour déclencher d'autres travaux dans jenkins.Exemple sur github
Le travail doit exister dans Jenkins et peut être paramétré. Quant à la branche, je suppose que vous pouvez la lire à partir de git
la source
build job: 'jobname
mais j'obtiens cette erreurNo parameterized job named jobname found
et je peux vous assurer qu'il y a un travail avec ce nom au même niveau dans le dossier d'organisation.build job: "${ORGANISATION_NAME}/${REPO_NAME}/master"
/
. Les chemins relatifs sont bons; Le problème de sorin était probablement que l'appel du travailbuild
était un travail multibranch, ce qui signifie qu'un chemin commejobname
essayerait de construire la branchejobname
du même travail; il doit l'être à la../jobname/branchname
placeVous pouvez utiliser l'
build job
étape de Jenkins Pipeline (minimum Jenkins requis: 2.130).Voici l'API complète pour l'
build
étape: https://jenkins.io/doc/pipeline/steps/pipeline-build-step/Comment utiliser
build
:job
: Nom d'un travail en aval à générer. Peut-être un autre travail Pipeline, mais plus communément un projet freestyle ou autre.../sister-folder/downstream
/top-level-folder/nested-folder/downstream
Déclenchez un autre travail en utilisant une branche comme paramètre
Dans mon entreprise, plusieurs de nos succursales incluent "/". Vous devez remplacer toutes les instances de "/" par "% 2F" (tel qu'il apparaît dans l'URL du travail).
Dans cet exemple, nous utilisons des chemins relatifs
Déclenchez un autre travail en utilisant le numéro de build comme paramètre
Déclenchez de nombreux emplois en parallèle
Source: https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/
Plus d'informations sur Parallel ici: https://jenkins.io/doc/book/pipeline/syntax/#parallel
Ou bien:
la source
Utilisez le plugin de travail de construction pour cette tâche afin de déclencher d'autres travaux à partir du fichier jenkins. Vous pouvez ajouter une variété de logique à votre exécution, comme des options parallèles, des nœuds et des agents et des étapes de déclenchement de travaux externes. J'ai donné un exemple de livre de cuisine facile à lire pour cela.
1. exemple de déclenchement d'une tâche externe à partir d'un fichier jenkins avec exemple conditionnel:
2. exemple de déclenchement de plusieurs tâches à partir du fichier jenkins avec exemple conditionnel:
la source