#!groovy
// Tout le pipeline vit dans kairntech/python-archetype, vars/pythonPipeline.groovy.
// Ce depot EST la racine de la famille : aucun projet FONCTIONNEL amont, et pas de
// categorie 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 autorise 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
  // commun a toutes les branches, donc un compteur de build neuf qui repasse sur un
  // numero deja publie echoue en « 400 File already exists ».
  //
  // Ce depot n'a pas de branche py38, contrairement aux six autres : le motif est le
  // meme partout, py38 n'y correspondra simplement jamais.
  publishBranches: '^(master|py38)$',
  // Racine de la famille, mais pas racine du build : ce depot consomme lui aussi le code
  // de build. pythonPipeline est charge '@master', donc une modification de l'archetype
  // l'atteint au build SUIVANT -- sans cette entree, aucun build suivant n'est declenche,
  // et une regression du pipeline partage attend le prochain commit fonctionnel ici.
  // 'master' et pas BRANCH_NAME : l'archetype n'a pas de branche par produit.
  upstreamProjects: ['python-archetype/master'],
)
