#!groovy
// Tout le pipeline vit dans kairntech/python-archetype, vars/pythonPipeline.groovy.
// Ce dépôt EST la racine de la famille pymultirole : aucun projet FONCTIONNEL amont, et
// pas de catégorie de throttle — il ne partage pas la contention avec ses consommateurs,
// il l'impose. Son seul amont est le code de build, voir upstreamProjects plus bas.
@Library('python-archetype@master') _
pythonPipeline(
  // 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 ».
  //
  // 'py38' et non 'py312' comme les plugins pymultirole : ici la branche de maintenance
  // porte le nom de l'interpréteur qu'elle gèle, et master est en 3.12.
  publishBranches: '^(master|py38)$',
  // Racine de la famille, mais pas racine du build : ce dépôt consomme lui aussi le code
  // de build. pythonPipeline est chargé '@master', donc une modification de l'archétype
  // l'atteint 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.
  upstreamProjects: ['python-archetype/master'],
)
