#!groovy
// Tout le pipeline vit dans kairntech/python-archetype, vars/pythonPipeline.groovy.
// Ce fichier n'est que de la donnée : ce qui est propre à ce dépôt, et rien d'autre.
@Library('python-archetype@master') _
pythonPipeline(
  // Partagée avec les autres dépôts pyconverters_*, pour qu'ils ne saturent pas les agents.
  throttleCategory: 'pyconverters',
  // Publier n'est autorisé que depuis les branches de livraison. Une branche de feature
  // ne doit rien envoyer sur PyPI : l'index est immuable et son espace de noms est commun
  // à toutes les branches, donc un compteur de build neuf qui repasse sur un numéro déjà
  // publié échoue en « 400 File already exists ». master est la seule : py312 a fini son
  // office, le portage y est fusionné, et py38 garde son propre Jenkinsfile.
  publishBranches: '^master$',
  // La branche fait partie de la donnée : c'est de la topologie de build, et rien
  // d'autre ne l'enregistre. Le nom, lui, est dans pyproject.toml.
  upstreamProjects: [
    'pymultirole_plugins/' + env.BRANCH_NAME,
    // Le code de build est une dépendance comme une autre. pythonPipeline est chargé
    // '@master', donc une modification de l'archétype atteint ce dépôt au build SUIVANT :
    // sans cette entrée, aucun build suivant n'est déclenché, et une régression du
    // pipeline partagé attend le prochain commit fonctionnel ici pour se montrer.
    // 'master' et pas BRANCH_NAME : l'archétype n'a pas de branche par produit.
    'python-archetype/master',
  ],
)
