Sélection de branche avec bencher run


Une branche est la référence git (c’est-à-dire le nom de la branche ou le tag). Lors de l’utilisation de la sous-commande CLI bencher run, sélectionnez une branche avec l’option --branch ou la variable d’environnement BENCHER_BRANCH. Le hachage git actuel peut aussi être spécifié avec l’option --hash. Si une branche n’est pas spécifiée, alors le nom de la branche git actuel est utilisé si disponible. Sinon, main est utilisé comme branche par défaut. De même, si le hachage git n’est pas spécifié, alors le hachage git actuel est utilisé s’il est disponible.

Lors de l’évaluation continue, c’est-à-dire l’évaluation dans CI, vous souhaiterez souvent créer ou repositionner une branche sur une branche existante. Cela s’appelle un point de départ de branche. Un point de départ est une autre branche à une version spécifique (et un hachage git, si disponible). Lors de l’utilisation de la sous-commande CLI bencher run, sélectionnez un point de départ avec l’option --start-point. En outre, utilisez l’option --start-point-hash pour spécifier un hachage git spécifique pour le point de départ. La quantité de données copiée depuis le point de départ est contrôlée avec l’option --start-point-max-versions. De même, les seuils peuvent être copiés depuis le point de départ avec le drapeau --start-point-clone-thresholds. Pour prévenir les divergences, utilisez le drapeau --start-point-reset pour toujours réinitialiser la branche au point de départ.

--branch <BRANCH>


Pour sélectionner une branche, utilisez l’option --branch ou la variable d’environnement BENCHER_BRANCH avec le nom, le slug ou l’UUID de la branche. Si la valeur spécifiée est un nom ou un slug et que la branche n’existe pas encore, elle sera créée pour vous. Cependant, si la valeur spécifiée est un UUID, la branche doit déjà exister. Si les deux sont spécifiés, l’option --branch prend le pas sur la variable d’environnement BENCHER_BRANCH.

Si ni l’un ni l’autre ne sont spécifiés, le CLI de Bencher tente de trouver la branche git actuelle. Il commence par chercher un dépôt git dans le répertoire de travail actuel. En cas d’échec, il continue vers le répertoire parent et réessaye jusqu’au répertoire racine. Si un dépôt git est trouvé, alors le nom court de la branche actuelle est utilisé. Cependant, si aucun dépôt git n’est trouvé, alors main est utilisé comme branche par défaut.

--hash <HASH>


Un hash de commit SHA-1 de 40 caractères. Si deux rapports ont la même branche et hash, ils seront considérés comme provenant du même commit. Donc, ils auront le même numéro de version de branche.

Si non fourni, le CLI Bencher essaie de trouver le hash git actuel. Il commence par rechercher un dépôt git dans le répertoire de travail actuel. Si cela ne réussit pas, il continue vers son répertoire parent et réessaie jusqu’au répertoire racine. Si un dépôt git est trouvé, alors le hash git de la tête de la branche actuelle est utilisé.

--start-point <BRANCH>


Utilisez le nom de branche, le slug ou l’UUID spécifié comme point de départ pour l’option branch. Pour GitHub, il s’agit généralement de la branche base pour une Pull Request, et pour GitLab, il s’agit généralement de la branche target pour une Merge Request. Le cas d’utilisation principal de --start-point est le Benchmarking Continu Statistique.

  • Si le point de départ spécifié est une chaîne vide, cette option est ignorée.
  • Si branch n’existe pas, elle sera créée en utilisant ce point de départ.
  • Si branch existe et que le point de départ est le même, cette option est ignorée.
  • Si branch existe et que le point de départ est différent, une nouvelle tête de branch sera créée en utilisant ce point de départ mis à jour.
  • Si branch n’existe pas et que le point de départ n’existe pas, alors branch sera créée sans aucune donnée historique.
  • Si branch existe et que le point de départ n’existe pas, alors cette option est ignorée.

Si une nouvelle branch est créée avec un point de départ, alors les données les plus récentes et éventuellement les seuils du point de départ spécifié sont copiés. Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.

Par exemple, si feature_branch n’existe pas encore, mais que main existe et possède des données historiques. Alors utiliser --branch feature_branch --start-point main ferait :

  1. Créer une nouvelle branche nommée feature_branch
  2. Copier les données les plus récentes de main vers feature_branch
  3. bencher run continuerait en utilisant feature_branch

🐰 Remarque : Lors de l’utilisation de variables d’environnement, elles doivent être entourées de guillemets doubles (par exemple --start-point "$MY_BRANCH_ENV_VAR"), si vous souhaitez que bencher run ne génère pas d’erreur lorsque MY_BRANCH_ENV_VAR n’est pas défini.

--start-point-hash <HASH>


Utilisez le hash Git complet spécifié comme Point de départ pour l’option branch. Cette option nécessite que l’option --start-point soit définie.

  • Si branch n’existe pas, il sera créé à partir de start-point au hash spécifié.
  • Si branch existe et que start-point et le hash spécifié sont identiques, alors cette option est ignorée.
  • Si branch existe et que soit start-point soit le hash spécifié est différent, une nouvelle Tête de branch sera créée à partir de start-point au hash spécifié.
  • Si branch n’existe pas et que start-point n’existe pas au hash spécifié, alors le branch sera créé sans aucune donnée historique.
  • Si branch existe et que start-point n’existe pas au hash spécifié, alors cette option est ignorée.

Si un nouveau branch est créé avec un Point de Départ, alors toutes les données les plus récentes et éventuellement les Seuils du start-point au hash spécifié sont copiées. Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.

Par exemple, si feature_branch existe avec son Point de Départ étant la Branche main au hash 32aea434d751648726097ed3ac760b57107edd8b alors l’utilisation de --branch feature_branch --start-point main --start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562 effectuerait :

  1. Supprimer l’ancienne Tête de feature_branch
  2. Créer une nouvelle Tête de feature_branch
  3. Copier toutes les données les plus récentes de main au hash 68b12758509ca5e2b1e3983525625e532eb5f562 vers la nouvelle Tête de feature_branch
  4. bencher run se déroulerait ensuite en utilisant la nouvelle Tête de feature_branch

--start-point-max-versions <COUNT>


Utilisez le nombre maximal spécifié de versions historiques de branches à inclure à partir du Point de Départ pour l’option branch. Toutes les versions au-delà de ce nombre seront omises. Par défaut, il y a 255 versions. Cette option nécessite que l’option --start-point soit définie.

Par exemple, si feature_branch existe avec son Point de Départ étant la branche main et que main a 300 versions, alors utiliser --branch feature_branch --start-point main --start-point-max-versions 100 n’inclurait que les 100 versions les plus récentes de main dans feature_branch.

--start-point-clone-thresholds


Clone tous les Seuils du Point de Départ pour l’option branche. Ce drapeau nécessite que l’option --start-point soit définie.

  • Si un Seuil n’existe pas, il sera créé à partir du Seuil point de départ.
  • Si un Seuil existe et qu’il est identique au Seuil point de départ, alors ce Seuil est effectivement ignoré.
  • Si un Seuil existe et que son modèle est différent de celui du Seuil point de départ, alors l’ancien modèle sera remplacé par le modèle du Seuil point de départ.
  • Si un Seuil existe et que le Seuil point de départ n’existe pas, alors le modèle du Seuil est supprimé.

Par exemple, si feature_branch existe avec son Point de Départ étant la Branche main et que main a un Seuil pour le Banc d’Essai intégré localhost et la Mesure de latence, alors utiliser --branch feature_branch --start-point main --start-point-clone-thresholds créerait un nouveau Seuil pour feature_branch avec le Banc d’Essai localhost et la Mesure de latence.

--start-point-reset


Réinitialise la branche spécifiée. Lorsque l’option --start-point est définie, la branche sera réinitialisée au Point de Départ spécifié. Cela est utile pour prévenir la dérive dans les données de Benchmarking Statistique Continu. Le principal cas d’utilisation de --start-point-reset sans spécifier de Point de Départ est le Benchmarking Continu Relatif.

  • Si la branche n’existe pas et qu’aucun Point de Départ n’est spécifié, la branche sera créée sans aucune donnée historique.
  • Si la branche existe et qu’aucun Point de Départ n’est spécifié, une nouvelle Tête de branche sera créée sans aucune donnée historique.
  • Si la branche n’existe pas et qu’un Point de Départ est spécifié, la branche sera créée en utilisant le Point de Départ.
  • Si la branche existe et qu’un Point de Départ est spécifié, une nouvelle Tête de branche sera créée en utilisant le Point de Départ.

Si une nouvelle branche est créée avec un Point de Départ, alors toutes les données les plus récentes et éventuellement les Seuils du start-point au hachage spécifié sont copiés. Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.

Par exemple, si feature_branch existe sans Point de Départ, alors utiliser --branch feature_branch --start-point-reset ferait :

  1. Supprimer l’ancienne Tête de feature_branch
  2. Créer une nouvelle Tête de feature_branch sans aucune donnée historique
  3. bencher run continuerait alors en utilisant la nouvelle Tête feature_branch

🐰 Félicitations ! Vous avez appris tout ce qu’il faut savoir sur la sélection de branches ! 🎉


Continuez: Seuils & Alertes ➡

🤖 Ce document a été automatiquement généré par OpenAI GPT-4. Il peut ne pas être précis et peut contenir des erreurs. Si vous trouvez des erreurs, veuillez ouvrir une issue sur GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, February 20, 2025 at 10:36:00 PM UTC