Sélection de branche avec bencher run


Une branche est la référence git (c’est-à-dire le nom de 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. Par défaut, tous les projets commencent avec une branche main, et main est utilisé par défaut si aucun n’est spécifié.

Lors du benchmarking en continu, c’est-à-dire le benchmarking en CI, vous voudrez souvent créer ou rebaser une branche sur une branche déjà 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 hash 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. De plus, utilisez l’option --start-point-hash pour spécifier un hash git spécifique pour le point de départ. La quantité de données copiées 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 flag --start-point-clone-thresholds. Pour éviter la dérive, utilisez le flag --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.

--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: Sun, October 13, 2024 at 12:36:00 PM UTC